我需要为抽象游戏排序一个移动列表。移动列表是int类型的数组。每次移动都需要数组中的九个元素,其中一个元素是我希望排序的分数值。
我看到Java有一个java.util.Arrays.sort(int [])方法,但由于移动列表有多个元素结构,我看不出它是如何有用的。
我不想写冒泡排序因为排序速度很关键。
java是否有任何可以满足我目的的快速排序功能?即用于使用一个元素作为排序值对int数组中的多元素记录进行排序?
答案 0 :(得分:0)
你可以这样做:
public class Move implements Comparable{
private int score,prop1,prop2;//...
public int compareTo(Move move) {
return this.score>move.score?1:this.score<move.score?-1:0;
}
}
实施Comparable
将允许您对Collection
个Move
个对象进行排序,如下所示:
List<Move> moves = new ArrayList<>();
//add all of your Move objects to moves list
Collections.sort(moves);
现在,您的List
将根据得分进行排序