ToB企服应用市场:ToB评测及商务社交产业平台
标题:
【无标题】
[打印本页]
作者:
万有斥力
时间:
3 天前
标题:
【无标题】
一样平常开发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));
}
复制代码
运行效果
[a, b, c]
[a, b, c]
复制代码
数组转换成集合
示例代码
private static void arraysToSet() {
String[] pigArray = {"猪头", "猪脑", "猪身", "猪尾巴"};
Set<String> pigSet = Arrays.stream(pigArray) .collect(Collectors.toSet());
}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4