ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【无标题】 [打印本页]

作者: 万有斥力    时间: 3 天前
标题: 【无标题】
一样平常开发stream流示例

  基础对象代码块

  1. @Data
  2. @ToString
  3. public class Person {
  4.     private String name;
  5.     private String city;
  6.     public Person(String name, String city) {
  7.         this.name = name;
  8.         this.city = city;
  9.     }
  10. }
复制代码
集合转换示例

  转换为key,object场景

  示例代码

  1. List<Person> list = new ArrayList<>();
  2.         list.add(new Person("a","aaaaaaaaaaa111"));
  3.         list.add(new Person("a","aaaaaaaaaaa222"));
  4.         list.add(new Person("a","aaaaaaaaaaa333"));
  5.         list.add(new Person("b","bbbbbbbbbbb111"));
  6.         list.add(new Person("b","bbbbbbbbbbb222"));
  7.         list.add(new Person("b","bbbbbbbbbbb333"));
  8.         list.add(new Person("c","ccccccccccc111"));
  9.         list.add(new Person("c","ccccccccccc222"));
  10.         list.add(new Person("c","ccccccccccc333"));
  11.         Map<String, Person> map = list.stream().collect(Collectors.toMap(Person::getName, Function.identity(), (key1, key2) -> key2));
  12.         System.out.println(map);
  13.         Map<String, Person> map1 = list.stream().collect(Collectors.toMap(Person::getName, Function.identity(), (key1, key2) -> key1));
  14.         System.out.println(map1);
复制代码
运行效果

  1. {a=Person(name=a, city=aaaaaaaaaaa333), b=Person(name=b, city=bbbbbbbbbbb333), c=Person(name=c, city=ccccccccccc333)}
  2. {a=Person(name=a, city=aaaaaaaaaaa111), b=Person(name=b, city=bbbbbbbbbbb111), c=Person(name=c, city=ccccccccccc111)}
复制代码
转换为key,List<>场景

  示例代码

  1. List<Person> list = new ArrayList<>();
  2.         list.add(new Person("a","aaaaaaaaaaa111"));
  3.         list.add(new Person("a","aaaaaaaaaaa222"));
  4.         list.add(new Person("a","aaaaaaaaaaa333"));
  5.         list.add(new Person("b","bbbbbbbbbbb111"));
  6.         list.add(new Person("b","bbbbbbbbbbb222"));
  7.         list.add(new Person("b","bbbbbbbbbbb333"));
  8.         list.add(new Person("c","ccccccccccc111"));
  9.         list.add(new Person("c","ccccccccccc222"));
  10.         list.add(new Person("c","ccccccccccc333"));
  11.         Map<String, List<Person>> collect = list.stream().collect(Collectors.groupingBy(item -> item.getName()));
  12.         System.out.println(collect);
复制代码
运行效果

  1. {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集合

  示例代码

  1. private static void getColoumSet() {
  2.         List<Person> list = new ArrayList<>();
  3.         list.add(new Person("a","aaaaaaaaaaa111"));
  4.         list.add(new Person("a","aaaaaaaaaaa222"));
  5.         list.add(new Person("a","aaaaaaaaaaa333"));
  6.         list.add(new Person("b","bbbbbbbbbbb111"));
  7.         list.add(new Person("b","bbbbbbbbbbb222"));
  8.         list.add(new Person("b","bbbbbbbbbbb333"));
  9.         list.add(new Person("c","ccccccccccc111"));
  10.         list.add(new Person("c","ccccccccccc222"));
  11.         list.add(new Person("c","ccccccccccc333"));
  12.         Set<String> collect = list.stream().map(Person::getName).collect(Collectors.toSet());
  13.         System.out.println(collect);
  14.         String[] longs = collect.toArray(new String[0]);
  15.         System.out.println(Arrays.toString(longs));
  16.     }
复制代码
运行效果

  1. [a, b, c]
  2. [a, b, c]
复制代码
数组转换成集合

  示例代码

  1. private static void arraysToSet() {
  2.         String[] pigArray = {"猪头", "猪脑", "猪身", "猪尾巴"};
  3.         Set<String> pigSet = Arrays.stream(pigArray) .collect(Collectors.toSet());
  4.     }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4