按照多个字段对Java对象列表进行排序,并按照特定字段进行分组。
创始人
2024-08-23 20:30:13
0

以下是一个示例代码,演示了如何按照多个字段对Java对象列表进行排序,并按照特定字段进行分组。

假设有一个Person类,有name、age和city字段,我们希望按照city字段进行分组,并在每个城市的分组内按照age字段进行排序。

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class SortingAndGroupingExample {

    public static void main(String[] args) {
        // 创建一个Person对象列表
        List personList = new ArrayList<>();
        personList.add(new Person("John", 25, "New York"));
        personList.add(new Person("Alice", 30, "London"));
        personList.add(new Person("Bob", 20, "New York"));
        personList.add(new Person("David", 35, "London"));
        personList.add(new Person("Eva", 40, "New York"));

        // 按照city字段进行分组,并在每个分组内按照age字段进行排序
        Map> groupedAndSortedMap = personList.stream()
                .sorted(Comparator.comparing(Person::getAge))
                .collect(Collectors.groupingBy(Person::getCity));

        // 打印结果
        groupedAndSortedMap.forEach((city, persons) -> {
            System.out.println("City: " + city);
            persons.forEach(System.out::println);
            System.out.println("------------------");
        });
    }

    static class Person {
        private String name;
        private int age;
        private String city;

        public Person(String name, int age, String city) {
            this.name = name;
            this.age = age;
            this.city = city;
        }

        public String getName() {
            return name;
        }

        public int getAge() {
            return age;
        }

        public String getCity() {
            return city;
        }

        @Override
        public String toString() {
            return "Person{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    ", city='" + city + '\'' +
                    '}';
        }
    }
}

上述代码将根据age字段对Person对象列表进行排序,并根据city字段进行分组。输出结果将按照城市进行分组,并在每个分组内按照年龄进行排序。

相关内容

热门资讯

黑科技苹果版(wepok)辅助... 黑科技苹果版(wepok)辅助插件(黑科技)是有挂(原来真的有挂)您好,,确实是有挂的,很多玩家在这...
黑科技中牌率(wEPOKE)辅... 黑科技中牌率(wEPOKE)辅助器(黑科技)辅助真的假的(本来真的有挂)是一款可以让一直输的玩家,快...
透视代打(Wpk)ai辅助有没... 透视代打(Wpk)ai辅助有没有用(黑科技)ai辅助软件推荐(竟然是真的有挂);是一款可以让一直输的...
黑科技模拟器(wepoker)... 黑科技模拟器(wepoker)有辅助吗(黑科技)ai辅助(切实是真的有挂);致您一封信;亲爱玩家:《...
大神辅助(微扑克)辅助算牌器(... 大神辅助(微扑克)辅助算牌器(辅助挂)辅助手机(总是是有挂)辅助器中分为三种模型:软件透明挂、辅助挂...
透视肯定(Wpk)透视辅助测试... 透视肯定(Wpk)透视辅助测试(黑科技)透视辅助可测试是真的假的(确实真的有挂)是一款可以让一直输的...
透视规律(WpK)ai辅助(黑... 透视规律(WpK)ai辅助(黑科技)ai辅助购买渠道(切实真的是有挂)1、金币登录送、破产送、升级送...
大神辅助(微扑克)ai软件(辅... 大神辅助(微扑克)ai软件(辅助挂)ai机器人(原来存在有挂)是一款可以让一直输的玩家,快速成为一个...
攻略辅助(微扑克)辅助插件挂(... 攻略辅助(微扑克)辅助插件挂(辅助挂)外挂(原来存在有挂)1)辅助挂:进一步探索辅助透视大陆,与熟悉...
黑科技系统(wEPoke)到底... 黑科技系统(wEPoke)到底有没有挂(黑科技)是有辅助(果然是有挂)1、ai辅助优化,发牌逻辑科技...