如何在java中创建arraylist属性?

如何在java中创建arraylist属性?,java,Java,两个文件。TictoeCopy.java,test.java。main方法位于test.java中。 userPositions是可调整大小的arraylist。我使用以下代码创建一个数组列表静态ArrayList userPositions=new ArrayList() 在TictoeCopy类中,元素将添加到userPositions arraylist中。填充userPosition后,在main方法中,将使用while(userPositions.contains(userPos)|

两个文件。TictoeCopy.java,test.java。main方法位于test.java中。 userPositions是可调整大小的arraylist。我使用以下代码创建一个数组列表<代码>静态ArrayList userPositions=new ArrayList()

在TictoeCopy类中,元素将添加到userPositions arraylist中。填充userPosition后,在main方法中,将使用
while(userPositions.contains(userPos)| cpuPosition.contains(userPos))
验证userPositions是否包含以前的元素。如果包含,将打印“已采取的位置”

整个代码在一个文件中运行良好。但放在两个文件中是行不通的。

我想把
static ArrayList userPositions=new ArrayList()。然后尝试保持arraylist值,然后将整个值传递给test.java

我的想法是,创建一个可调整大小的arraylist对象属性可能可以解决这个问题。所以我可以编写代码:
while(T1.userPositions.contains(userPos)| T1.cpuPosition.contains(userPos))
来解决这个问题

TictoeCopy.java

public void placepiece(char[][] gameBoard, int pos, String user) {
    char symbol = ' ';
    if (user == "player") {symbol = 'X';userPositions.add(pos);}
    else if (user=="cpu") {symbol = 'O'; cpuPosition.add(pos);}
    switch(pos) {
        case 1: gameBoard[0][0] = symbol; break;
        case 2: gameBoard[0][2] = symbol; break;
        case 3: gameBoard[0][4] = symbol; break;        
        case 4: gameBoard[2][0] = symbol; break;
        case 5: gameBoard[2][2] = symbol; break;        
        case 6: gameBoard[2][4] = symbol; break;
        case 7: gameBoard[4][0] = symbol; break;
        case 8: gameBoard[0][2] = symbol; break;
        case 9: gameBoard[0][4] = symbol; break;
        default: 
            break;
    }
}
test.java文件

TicTacToeCopy T1 =  new TicTacToeCopy();
            while(true) {
            Scanner scan = new Scanner(System.in);  // Create a Scanner object
            System.out.println("Please enteryour position.");
            int userPos = scan.nextInt();
            T1.placepiece(gameBoard, userPos,"player");  
            while (userPositions.contains(userPos)||cpuPosition.contains(userPos)) {
                System.out.println("Already taken!!!");
                userPos = scan.nextInt();}
    

只需将您的ArrayList公开,并使用正确的语法引用即可。简而言之:将
publicstaticarraylistuserpositions…
放入您的
tictactoecompy
中,然后您可以从代码中的任意位置使用一个简单的
tictactoecompy.userPositions来引用该列表(它只需要知道/导入tictactoecompy类)