2015-05-04 42 views
2

对不起,这可能已经回答了一些地方,但我对Java很新,我不能将我发现的其他答案应用到我正在做的工作中。如何排序我的ArrayList?并选择最好的一个

所以我有一个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的棋子?

希望这是足够的信息..如果不是请让我知道。

+1

'Collections.sort(list,Comparator);' –

回答

0

你可以做这样你列表,

ArrayList<ListObj> list = new ArrayList<ListObj>(); 

    Collections.sort(list, Comparator); 
//or 
     Collections.sort(list); 

comparator看看,如果你不能确定其工作。

0

您可以使用比较器。首先,您需要创建一个实现Comparator接口的类。然后你可以使用Collections实用工具类:

Collections.sort(list, new MyComparator()); 
+0

对于'ArrayList',您可能需要'Collections.sort' –