public static void main(String[] args) {
//jdk8 stream对list数据去重,使用filter()过滤列表,list转map
//去除List中重复的String
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("bbb");
List unique = list.stream().distinct().collect(Collectors.toList());
System.out.println("unique: " + unique);
List<Person> persons = new ArrayList<>();
persons.add(new Person("1", "jack", "boy"));
persons.add(new Person("2", "jack", "boy"));
persons.add(new Person("3", "tom", "boy"));
persons.add(new Person("4", "mary", "girl"));
//根据name去重
List<Person> name = persons.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))),
ArrayList::new
));
System.out.println("name: " + name);
//根据name和sex去重
List<Person> nameSex = persons.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getName() + ";" + o.getSex()))),
ArrayList::new
));
System.out.println("nameSex: " + nameSex);
//filter()过滤列表
List<Person> filterList = persons.stream().filter(person -> person.getSex().equals("girl")).collect(Collectors.toList());
System.out.println("filterList: " + filterList);
//list转map
Map<String,Object> toMap = persons.stream().collect(Collectors.toMap(p->p.getId(),p->p.getName()));
System.out.println("toMap: " + toMap);
}
jdk8 list新特性demo
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 尚硅谷Java视频Java8新特性视频教程 本套资源主要包含了jdk8和jdk9的新特性...强大的很 尚硅谷Ja...
- jdk9都出来了,我还在看jdk8 流式数据处理 import java.util.*; import jav...
- lambda表达式的概念 使用->表达我的我们叫做lambda表达式,实现了指定接口,并返回接口对象的一种写法。 ...