首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java中对ArrayList of ArrayLists (按其中一个变量)进行排序?

如何在Java中对ArrayList of ArrayLists (按其中一个变量)进行排序?
EN

Stack Overflow用户
提问于 2022-03-27 19:02:48
回答 1查看 272关注 0票数 1

(Java 8)我有一个ArrayList of ArrayLists,如下所示:

5、10

2,11

1,12

8、13

我希望这些列表按列表中的第一个值按升序或降序排序。例如,通过升序,ArrayList将被排序为:

1,12

2,11

5、10

8、13

我该怎么做?

我正在努力使用比较器类。我所见过的其他文档提到了这些数据何时由数组表示(Arrays.sort然后在参数中定义一个比较器),但是当它是一个ArrayLists列表时,我就找不出解决方案了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-27 19:16:03

使用Stream (Java 8):

代码语言:javascript
运行
复制
public static void main(String[] args) {
    List<List<Integer>> list = new ArrayList<>();

    list.add(asList(5, 10));
    list.add(asList(2, 11));
    list.add(asList(1, 12));
    list.add(asList(8, 15));

    System.out.println("sorted asc = " + list.stream()
            .sorted(Comparator.comparing(o -> o.get(0)))
            .collect(Collectors.toList()));

    System.out.println("sorted desc = " +  list.stream()
            .sorted((i, j) -> -i.get(0).compareTo(j.get(0)))
            .collect(Collectors.toList()));
}

private static List<Integer> asList(Integer... arr) {
    return Arrays.asList(arr);
}

排序asc = [1,12,2,11,5,10,8,15]

排序12= [8,15,5,10,2,11,1,12]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71639418

复制
相关文章

相似问题

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