集合按字段排序,单多属性去重
创始人
2024-06-03 16:11:08

// 实体类
package com.example.listsorttest.collectionsort;
import lombok.Data;
@Data
public class Student {
private String name;
private int age;
private String code;

public Student(String name, int age, String code) {this.name = name;this.age = age;this.code = code;
}

}
// 业务功能代码
package com.example.listsorttest.collectionsort;
import org.junit.Test;
import java.util.*;
import java.util.stream.Collectors;
public class ListSortTest {
Student s1 = new Student(“张三”,16,“1”);
Student s2 = new Student(“张大”,17,“1”);
Student s3 = new Student(“张三”,19,“1”);
Student s4 = new Student(“张三”,16,“1”);
Student s5 = new Student(“张五”,16,“1”);
// 按字段排序
@Test
public void test1() {
List list = new ArrayList<>();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);

    List lst = Arrays.asList("张五","张大","张三");list.sort(Comparator.comparingInt((o)->lst.indexOf(o.getName())));System.out.println(list.size() +"-");System.out.println(list);
}
// 多属性去重
@Test
public void test2() {List list = Arrays.asList(s1,s2,s3,s4,s5);Set set = new TreeSet<>(Comparator.comparing(o->(o.getName())+""+(o.getAge())));set.addAll(list);ArrayList students = new ArrayList<>(set);students.forEach(System.out::println);System.out.println("==========================");List collect = students.stream().map(Student::getName).distinct().collect(Collectors.toList());System.out.println(collect);
}
// 单属性去重
@Test
public void test3() {List list = Arrays.asList(s1,s2,s3,s4,s5);Set set = new TreeSet<>(Comparator.comparing(Student::getName));set.addAll(list);ArrayList students = new ArrayList<>(set);students.forEach(System.out::println);System.out.println("=======================");//list取出map集合中某一元素集合List collect = students.stream().map(Student::getName).collect(Collectors.toList());System.out.println(collect);
}
// list属性按对象属性排序
@Test
public void test4() {List list = Arrays.asList(s1,s2,s3,s4,s5);// 字段排序List lst = Arrays.asList("张五","张大","张三");list.sort(Comparator.comparing(o->lst.indexOf(o.getName())));System.out.println(list);
}

}

相关内容

热门资讯

北京今天最高气温-4℃,上午仍... 北京市气象台18日6时发布天气预报:今天早晨至白天小雪转阴,偏北风一级转三级左右,山区阵风六级,最高...
欧盟-南共市自贸协定正式签署 每经AI快讯,当地时间1月17日,欧盟-南方共同市场(南共市)自由贸易协定在巴拉圭首都亚松森正式签署...
一船越千年,游客皆为剧中人 (来源:新华日报) □ 本报记者 李源 通讯员 陈默 丁云 1月15日晚,扬州便益门码...
大熊猫主题户外游乐场开园 本报讯(黄刚 四川日报全媒体记者 李婷)1月17日,雅安上新文旅新地标——“熊猫乐园·胖达星球”开园...
北京楼市崩盘后房价,依然让人买... 最新或2023(历届)三季度中国经济数据公布后,国内学界对中国经济未来走势的看法产生了分歧,毕竟7....