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
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 尚硅谷Java视频Java8新特性视频教程 本套资源主要包含了jdk8和jdk9的新特性...强大的很 尚硅谷Ja...
- jdk9都出来了,我还在看jdk8 流式数据处理 import java.util.*; import jav...
- lambda表达式的概念 使用->表达我的我们叫做lambda表达式,实现了指定接口,并返回接口对象的一种写法。 ...