IO流(Stream流)

一,获取Stream流

  1. list,set
  2. map(先获取keys 或 values 或 entry对象)
  3. 数组(Arrays.stream(arr) 或 Stream.of(arr))

二,常用方法

  1. filter() //过滤
  2. sorted() //排序
  3. limit(int a) //取前a个元素
  4. skip(int a) //跳过a个元素
  5. distinct()
  6. concat(stream1,stream2) //合并流
  7. map() //改变元素类型
  8. count() //统计个数 , 返回long类型
 list.stream().filter(student -> student.getScore()>60)
                //.sorted((o1,o2) -> Double.compare(o2.getScore(),o1.getScore()))
                .map(student -> student.getName())
                .distinct()
                //.skip(list.size() - 2)
                .forEach(System.out::println);
  1. Stream.of(str) //创建Stream流
 Stream<String> stream1 = Stream.of("一", "二", "三");
        Stream<String> stream2 = Stream.of("四", "五", "六");
        Stream.concat(stream1,stream2).forEach(s -> System.out.println(s));

  1. max() //取最大值,返回一个Optional对象
       //把student对象包裹起来,防止对象为空,报空指针异常
        Optional<Student> max = list.stream().max((o1, o2) -> Double.compare(o1.getScore(), o2.getScore()));

       /* Student student = max.get();
        System.out.println(student);*/

        max.ifPresent(student1 -> System.out.println(student1));  //判断max是否为空,不为空则打印student

  1. collect(Collectors.toList()) //将流中的元素放入一个新的集合(list,set,map)中去
 Map<String, Double> map = list.stream().filter(s -> s.getScore() > 70)
                .collect(Collectors.toMap(k -> k.getName(), v -> v.getScore()));
        
        map.forEach((k, v) -> System.out.println("k:" + k + " v:" + v));

        list.stream().filter(s -> s.getScore() > 70).collect(Collectors.toMap(new Function<Student, String>() {
            @Override
            public String apply(Student student) {
                return student.getName();
            }
        }, new Function<Student, Double>() {
            @Override
            public Double apply(Student student) {
                return student.getScore();
            }
        }));

三,对字符串数组排序

 List<Integer> list = Arrays.stream(strs)
                    .map(s1 -> Integer.valueOf(s1))
                    .sorted((i1, i2) -> i2 - i1)
                    .collect(Collectors.toList());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值