1.数据准备
ArrayList<Person> list = new ArrayList<>();
Person person1 = new Person(1, "张三", 18);//int id,string name,int age
Person person2 = new Person(2, "李四", 4);
Person person3 = new Person(3, "王五", 15);
Person person4 = new Person(4, "赵六", 12);
Person person5 = new Person(5, "张三", 13);
Person person6 = new Person(6, "老八", 20);
Person person7 = new Person(7, "老八", 20);
Person person8 = new Person(6, "老十", 21);
list.add(person1);list.add(person2);list.add(person3);
list.add(person4);list.add(person5);list.add(person6);
list.add(person7);list.add(person8);
2.根据对象的属性排序
2.1 sort方法根据单个属性排序
list.sort((o1, o2)-> o1.getAge()-o2.getAge());
for (Person person : list) {
System.out.println("person = " + person);
}
//结果如下:
2.2 sort方法根据两个属性排序
//.reversed()为倒序,默认为正序。
list.sort(Comparator.comparing(Person::getAge).reversed().thenComparing(Comparator.comparing(Person::getId)).reversed());
for (Person person : list) {
System.out.println("person = " + person);
}
//结果如下:
2.3 TreeSet根据单个属性排序加去重
TreeSet<Person> set = new TreeSet<>
(Comparator.comparing(Person::getAge).reversed());
set.addAll(list);
for (Person person : set) {
System.out.println("person = " + person);
}
//结果如下
2.4 TreeSet根据两个属性排序加去重
TreeSet<Person> set = new TreeSet<>
(Comparator.comparing(Person::getAge).reversed().thenComparing(Comparator.comparing(Person::getId)).reversed());
set.addAll(list);
for (Person person : set) {
System.out.println("person = " + person);
}
PS:大家看了后觉得对自己有帮助可以三连留言,如有正在寻找工作机会的小伙伴也请私信小助手微信 x118422 详聊,欢迎加入三猪科技开发组大家庭哦~