一样平常开发stream流示例
基础对象代码块
- @Data
- @ToString
- public class Person {
- private String name;
- private String city;
- public Person(String name, String city) {
- this.name = name;
- this.city = city;
- }
- }
复制代码 集合转换示例
转换为key,object场景
示例代码
- List<Person> list = new ArrayList<>();
- list.add(new Person("a","aaaaaaaaaaa111"));
- list.add(new Person("a","aaaaaaaaaaa222"));
- list.add(new Person("a","aaaaaaaaaaa333"));
- list.add(new Person("b","bbbbbbbbbbb111"));
- list.add(new Person("b","bbbbbbbbbbb222"));
- list.add(new Person("b","bbbbbbbbbbb333"));
- list.add(new Person("c","ccccccccccc111"));
- list.add(new Person("c","ccccccccccc222"));
- list.add(new Person("c","ccccccccccc333"));
- Map<String, Person> map = list.stream().collect(Collectors.toMap(Person::getName, Function.identity(), (key1, key2) -> key2));
- System.out.println(map);
- Map<String, Person> map1 = list.stream().collect(Collectors.toMap(Person::getName, Function.identity(), (key1, key2) -> key1));
- System.out.println(map1);
复制代码 运行效果
- {a=Person(name=a, city=aaaaaaaaaaa333), b=Person(name=b, city=bbbbbbbbbbb333), c=Person(name=c, city=ccccccccccc333)}
- {a=Person(name=a, city=aaaaaaaaaaa111), b=Person(name=b, city=bbbbbbbbbbb111), c=Person(name=c, city=ccccccccccc111)}
复制代码 转换为key,List<>场景
示例代码
- List<Person> list = new ArrayList<>();
- list.add(new Person("a","aaaaaaaaaaa111"));
- list.add(new Person("a","aaaaaaaaaaa222"));
- list.add(new Person("a","aaaaaaaaaaa333"));
- list.add(new Person("b","bbbbbbbbbbb111"));
- list.add(new Person("b","bbbbbbbbbbb222"));
- list.add(new Person("b","bbbbbbbbbbb333"));
- list.add(new Person("c","ccccccccccc111"));
- list.add(new Person("c","ccccccccccc222"));
- list.add(new Person("c","ccccccccccc333"));
- Map<String, List<Person>> collect = list.stream().collect(Collectors.groupingBy(item -> item.getName()));
- System.out.println(collect);
复制代码 运行效果
- {a=[Person(name=a, city=aaaaaaaaaaa111), Person(name=a, city=aaaaaaaaaaa222), Person(name=a, city=aaaaaaaaaaa333)], b=[Person(name=b, city=bbbbbbbbbbb111), Person(name=b, city=bbbbbbbbbbb222), Person(name=b, city=bbbbbbbbbbb333)], c=[Person(name=c, city=ccccccccccc111), Person(name=c, city=ccccccccccc222), Person(name=c, city=ccccccccccc333)]}
复制代码 返回集合中某个字段的set集合
示例代码
- private static void getColoumSet() {
- List<Person> list = new ArrayList<>();
- list.add(new Person("a","aaaaaaaaaaa111"));
- list.add(new Person("a","aaaaaaaaaaa222"));
- list.add(new Person("a","aaaaaaaaaaa333"));
- list.add(new Person("b","bbbbbbbbbbb111"));
- list.add(new Person("b","bbbbbbbbbbb222"));
- list.add(new Person("b","bbbbbbbbbbb333"));
- list.add(new Person("c","ccccccccccc111"));
- list.add(new Person("c","ccccccccccc222"));
- list.add(new Person("c","ccccccccccc333"));
- Set<String> collect = list.stream().map(Person::getName).collect(Collectors.toSet());
- System.out.println(collect);
- String[] longs = collect.toArray(new String[0]);
- System.out.println(Arrays.toString(longs));
- }
复制代码 运行效果
数组转换成集合
示例代码
- private static void arraysToSet() {
- String[] pigArray = {"猪头", "猪脑", "猪身", "猪尾巴"};
- Set<String> pigSet = Arrays.stream(pigArray) .collect(Collectors.toSet());
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |