首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按照java中的组进行分组、排序和排序

按照java中的组进行分组、排序和排序
EN

Stack Overflow用户
提问于 2020-12-17 08:06:23
回答 1查看 175关注 0票数 0

我有如下所示的数据,并希望应用组,在组内排序,最后对组进行排序。

代码语言:javascript
复制
1.2   5
1.3   5
1.5   4
2.1   4
2.2   4
3.5   4

通过使用java 8集合,我希望按第二列数据分组,并对第一列数据进行排序。稍后,我想自己对组进行排序。

下面是我所期望的数据

代码语言:javascript
复制
1.3   5
1.2   5
3.5   4
2.2   4
2.1   4
1.5   4
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-17 08:42:43

只需要运行下面的单行方法就可以根据需要对其进行排序。

代码语言:javascript
复制
public static void sortGroup(List<Group> list) {
    list.sort(Comparator.comparingInt(Group::getCol2)
                        .thenComparing(Group::getCol1)
                        .reversed());
}

这里的List<Group>.

  • We
  • list是使用Compartors命令col2,然后按升序排列col1。最后,reversed()逆转了总顺序.

我假设Group的结构为

代码语言:javascript
复制
private static class Group {
        double col1;
        int col2;

        public Group(double col1, int col2) {
            this.col1 = col1;
            this.col2 = col2;
        }

        public double getCol1() {
            return col1;
        }

        public int getCol2() {
            return col2;
        }

        @Override
        public String toString() {
            return col1 + "\t" + col2;
        }
    }

测试:

代码语言:javascript
复制
public static void main(String[] args) {
    List<Group> list = Arrays.asList(
            new Group(1.2, 5),
            new Group(1.3, 5),
            new Group(1.5, 4),
            new Group(2.1, 4),
            new Group(2.2, 4),
            new Group(3.5, 4));
    sortGroup(list);
    list.forEach(System.out::println);
}

输出:

代码语言:javascript
复制
1.3 5
1.2 5
3.5 4
2.2 4
2.1 4
1.5 4
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65336756

复制
相关文章

相似问题

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