Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何增加ArrayList中对象的索引_Java_Arraylist_Indexing - Fatal编程技术网

Java 如何增加ArrayList中对象的索引

Java 如何增加ArrayList中对象的索引,java,arraylist,indexing,Java,Arraylist,Indexing,我最近刚刚学习了java,正在使用2d ArrayList实现我自己的骑士之旅问题。我不知道这是否可行,但有没有办法增加2d ArrayList中对象的索引?或者任何其他类型的数组 在这里,我将我的骑士初始化为1,并将棋盘[0][0]设置为我的骑士 int knight = 1; board[0][0].add(knight); // board[0][0] is now 1 现在我的骑士在棋盘的左上角(即棋盘[0][0]) 现在我想做一些类似于board[0]+=1[0]+=2=knigh

我最近刚刚学习了java,正在使用2d ArrayList实现我自己的骑士之旅问题。我不知道这是否可行,但有没有办法增加2d ArrayList中对象的索引?或者任何其他类型的数组

在这里,我将我的骑士初始化为1,并将棋盘[0][0]设置为我的骑士

int knight = 1;

board[0][0].add(knight); // board[0][0] is now 1
现在我的骑士在棋盘的左上角(即
棋盘[0][0]
) 现在我想做一些类似于
board[0]+=1[0]+=2=knight
的事情,将我的骑士的位置设置为
board[1][2]
,但我不知道该怎么做。 我想这样做,当我的骑士在另一个广场上时,它仍然可以工作

这是我的棋盘课:

public class ChessBoard {

ArrayList[][] board;

public ChessBoard() {
    this.board = new ArrayList[8][8];
    board[0][0] = new ArrayList();
    board[1][0] = new ArrayList();
    board[2][0] = new ArrayList();
    board[3][0] = new ArrayList();
    board[4][0] = new ArrayList();
    board[5][0] = new ArrayList();
    board[6][0] = new ArrayList();
    board[7][0] = new ArrayList();
}
public class Board {
    private int x;
    private int y;

    public void incrementX () {
        x++;
    }
    ...
}

任何帮助都将不胜感激

您当然可以声明一个2d字符串数组,如:

String [][] board = new String [8][8];
但是为什么不创建一个board类呢

public class ChessBoard {

ArrayList[][] board;

public ChessBoard() {
    this.board = new ArrayList[8][8];
    board[0][0] = new ArrayList();
    board[1][0] = new ArrayList();
    board[2][0] = new ArrayList();
    board[3][0] = new ArrayList();
    board[4][0] = new ArrayList();
    board[5][0] = new ArrayList();
    board[6][0] = new ArrayList();
    board[7][0] = new ArrayList();
}
public class Board {
    private int x;
    private int y;

    public void incrementX () {
        x++;
    }
    ...
}

或者类似的?

板[0][0]=0;董事会[1][2]=骑士。有史以来最混乱的语法ArrayList[][]板;为什么不
int[][]板
?谢谢你的建议。我想这会更像我想要的。我不会同意这一点,因为棋盘实际上没有移动,你希望你的骑士改变位置,而不是棋盘。@luisdurazoa这是一个公平的观点——如果问题是如何发展一场国际象棋,我会同意你的看法。但是,因为这是围绕骑士的巡演问题,传统上不是用蛮力解决的,而是通过其他方法解决的,比如分而治之,它改变了棋盘的大小。我不是在给骑士建模,而是在给棋盘建模。我会马上尝试这个问题,我试着给一个真正的棋盘建模,然后意识到它是完全不同的东西。