Java中的sort和TreeSet排序

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);
}
//結果以下:
複製代碼

image-20210421105644066.png

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);
}
//結果以下:
複製代碼

image-20210421105822965.png

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);
}
//結果以下
複製代碼

image-20210421110921403.png

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);
}
複製代碼

image-20210421111034685.png

PS:你們看了後以爲對本身有幫助能夠三連留言,若有正在尋找工做機會的小夥伴也請私信小助手微信 x118422 詳聊,歡迎加入三豬科技開發組你們庭哦~java

相關文章
相關標籤/搜索