首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在java中对数组的ArrayList进行排序

在java中对数组的ArrayList进行排序
EN

Stack Overflow用户
提问于 2017-05-24 18:46:58
回答 4查看 1.3K关注 0票数 0

我想知道您是否知道在Java语言中对数组的ArrayList进行排序的方法。我有一个函数,它给一个特定的数组一个介于0和1之间的分数。我想对ArrayList进行排序,这样得分最高的数组就会排在第一位。

代码语言:javascript
复制
public double evaluate(int[] toEvaluate) {
    double result = 0.0;
    for (int i = 0; i < toEvaluate.length; i++) {
        result += table[i][casesMap.get(toEvaluate[i])];
    }
    return result / toEvaluate.length;
}

有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-24 18:59:39

您应该将Collections.sort()与自定义Comparator一起使用

代码语言:javascript
复制
List<Integer[]> arrays = new ArrayList<>();

arrays.add(new Integer[]{1, 2});
arrays.add(new Integer[]{3, 4});

Collections.sort(arrays, new Comparator<Integer[]>() {
    public int compare(Integer[] a, Integer[] b) {
        return 1; // FIX this according to your needs
    }
});

上面的compare()只是一个存根,你应该根据文档来实现它,它可以被替换为一个lambda表达式。在上面的代码中,应该是:Collections.sort(arrays, (a, b) -> 1)

票数 4
EN

Stack Overflow用户

发布于 2017-05-24 19:03:04

您必须编写一个比较器和比较方法覆盖,您可以在其中使用您的函数来计算COMP值

代码语言:javascript
复制
  @Override
                public int compare(Integer[] o1, Integer[] o2) {
                 int o1Number=ratingFunction(o1) ;
                 int o2Number=ratingFunction(o2) ;  
                 int cmp=o1Number.compareTo(o2Number);
                    return cmp;
                }
票数 0
EN

Stack Overflow用户

发布于 2017-05-24 19:03:28

您可以使用比较器对列表进行降序排序,也可以使用集合排序方法,然后使用反向方法使列表降序,如下所示:

代码语言:javascript
复制
    List<Integer> numberList =new ArrayList<Integer>();
    numberList.add(3);
    numberList.add(1);
    numberList.add(2);

    //before sort
    for (Integer integer : numberList) {
        System.out.println(integer);
    }

    //sorting
    Collections.sort(numberList);
    Collections.reverse(numberList);

    //after sort
    for (Integer integer : numberList) {
        System.out.println(integer);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44156133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档