如何对ArrayList进行排序?并选择最好的一个

时间:2015-05-04 12:28:49

标签: java arraylist

对不起,这可能已经在某个地方得到了解答,但我对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?

希望这是足够的信息..如果不是,请告诉我。

2 个答案:

答案 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