对不起,这可能已经在某个地方得到了解答,但我对Java很新,我不能将其他答案应用到我正在做的工作中。
所以我有一个ArrayList,它存储了在特定回合中可以采取的部分的位置。
ArrayList<Move> legalTakes = new ArrayList<Move>();
一个移动有一个坐标从(x1,y1)和一个坐标到(x2,y2),这是它将要拍摄的部分。
moveInput = new Move(pieceToMove, x1, y1, x2, y2, false);
从调用方法(getPiece)我可以获取x2,y2并查看该位置的哪一块并找到该块的值。
for (Move m : legalTakes) { //for all of the possible takes that turn...
Piece occPieceToTake = this.getBoard().getPiece(m.getX2(),m.getY2());
int pieceValue = this.getBoard().getPiece(m.getX2(),m.getY2()).getValue(occPieceToTake.getChar());
System.err.println("-- WORTH : "+pieceValue);
}
从这里可以根据pieceValue返回的值来命令我的ArrayList吗?因此,如果返回值为6的王,我可以选择一个将返回值为1的pawn?
希望这是足够的信息..如果不是,请告诉我。
答案 0 :(得分:0)
您可以使用比较器。首先,您需要创建一个实现Comparator
接口的类。然后,您可以使用Collections
实用程序类:
Collections.sort(list, new MyComparator());
答案 1 :(得分:0)
您可以通过执行此操作对您进行排序,
ArrayList<ListObj> list = new ArrayList<ListObj>();
Collections.sort(list, Comparator);
//or
Collections.sort(list);
如果您不确定其工作情况,请查看comparator。