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