【无标题】

日常开发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());
    }

你可能感兴趣的:(JAVA,java)