最后添加的对象会覆盖我的ArrayList

时间:2018-04-13 20:36:48

标签: java arrays object arraylist overrides

添加到ArrayList的最后一个对象覆盖了ArrayList中的所有元素,即使在阅读了Web上所有与问题相关的主题之后,我也无法弄清楚原因。

我每次迭代都创建新对象?并且所有字段(移动,板,颜色)都受到保护(我不能改变它,因为我使用的是棋盘框架)。

我还没有在网上找到解决方案,因为我的字段不是静态的,我还会在每次迭代后创建一个新对象。

void get_input(char **valp,int *i){
 char *val = *valp;
...
 val = realloc ...
 *valp = val;
...

我使用这个由三个类组成的框架用于Chessboard实现:  1.棋盘:https://pastebin.com/CqgHLCXM  2.移动:https://pastebin.com/g2wr16TP  3.规则:https://pastebin.com/HEznyECY

我还重写了没有框架依赖关系的代码并且它有效..所以我猜这是一个框架问题。

框架也可用作JAR:https://ufile.io/c7n3o

public static void main(String [] args){

public String solve(String fen) {
    Chessboard cb = Chessboard.getChessboardFromFEN(fen);
    return solve(cb);
}

private String solve(Chessboard cb){
 ArrayList<Chessboard> prioritetna = new ArrayList<>();
 for(int i = 0; i < 10; i++){
  cb.makeMove(cb.getMoves().get(i));
  prioritetna.add(new Chessboard(cb.getBoard(), cb.getColor(), 
  cb.getMovesLeft()));
  cb.reverseMove(cb.getMoves().get(i));
 }
 return "";
}

}

0 个答案:

没有答案