0
点赞
收藏
分享

微信扫一扫

stream流的收集方法

GhostInMatrix 2022-02-18 阅读 84
stream流的收集操作,
通过工具类Collectors提供了收集方式
public static <T>Collector tolist();
把元素收集到list集合中
public static <T>Collector toset();
把元素收集到set集合中
public static Collector tomap
(Function keymapper,Function valuemapper);
把集合收到到map集合中

port java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/*
stream流的收集操作,通过工具类Collectors提供了收集方式
public static <T>Collector tolist();把元素收集到list集合中
public static <T>Collector toset();把元素收集到set集合中
public static Collector tomap(Function keymapper,Function valuemapper);把集合收到到map集合中
 */
public class streamDome8 {
    public static void main(String[] args) {
        //创建list集合对象
        List<String>list=new ArrayList<String>();
        list.add("林青霞");
        list.add("王祖贤");
        list.add("张国荣");
        list.add("张曼玉");
        list.add("刘德华");
        list.add("林海");
        //得到名字为三个字的流
        Stream<String> list1 = list.stream().filter(s -> s.length() == 3);
        //把stream收集到的数据放入list集合并遍历集合
        List<String> list2 = list1.collect(Collectors.toList());
        for (String name:list2)
        {
            System.out.println(name);
        }
        System.out.println("-----------------");
        //创建set集合
        Set<Integer>setarray=new HashSet<Integer>();
        setarray.add(10);
        setarray.add(20);
        setarray.add(30);
        setarray.add(40);
        setarray.add(50);
        //得到一个年龄大于25的流
        Stream<Integer> integerStream = setarray.stream().filter(i -> i > 25);
        //把收集到的数据放到set集合中
        Set<Integer> newset = integerStream.collect(Collectors.toSet());
        //遍历集合
        for (Integer integer:newset)
        {
            System.out.println(integer);
        }
    //创建字符串数组
        String[]person={"林青霞,33","张国荣,34","刘德华,35","王祖贤,36"};
        Stream<String> personstream = Stream.of(person);
        //过滤要大于33岁的stream流
        Stream<String> newpersonstream = personstream.filter(s -> Integer.parseInt(s.split(",")[1]) > 33);
        Map<String, Integer> personmap = newpersonstream.collect(Collectors.toMap(s -> s.split(",")[0], s -> Integer.parseInt(s.split(",")[1])));
        Set<String> keyset = personmap.keySet();
        for (String key:keyset)
        {

            Integer integer = personmap.get(key);
            System.out.println(key+integer);
        }

    }
举报

相关推荐

0 条评论