我正在创建一个应用程序,用于排序从最佳到最差的比赛结果列表,并显示实际位置。我才刚开始编程。
示例:
ArrayList结果/// [8,9,5,4,7]
应返回ArrayList位置(从低到高)// [4,5,2,1,3]
答案 0 :(得分:0)
如果要对arrayList进行排序,则应尝试Collections.sort(ArrayList)。如果您的列表仅包含数字(int,double ...),则该方法有效。如果要对其他内容进行排序,则应查看Comparator接口及其比较方法。而且,如果您不想更改原始数组,只需创建一个对arrayList进行排序的方法,该方法作为Parameter给出并返回。返回的值可以保存到新的arrayList中。
另一种解决方案是使用HashMap。该列表可以存储键和值。这是一个教程:https://www.w3schools.com/java/java_hashmap.asp
答案 1 :(得分:0)
只需对结果进行排序即可使用:
Collections.sort(result, Collections.reverseOrder());
但是,如果您需要跟踪索引,则可能需要:
class ResultArray{
int index;
int value;
public ResultArray(int i, int v){
index = i;
value = v;
}
}
List<ResultArray> nums = new ArrayList<>();
for(int i = 0; i < result.size(); i++) {
nums.add(new ResultArray(i, result.get(i)));
}
Collections.sort(nums, (a, b) -> a.y > b.y ? -1 : 1);