Stream-List的转换

公众号:(百合骑士coding)~ 分享好玩的新技术

一、Stream是什么?

Stream是Java8处理集合的关键抽象概念,他可以对集合进行非常复杂的查找,过滤,筛选等操作。

二、Stream的基本操作

1.创建Stream

从集合和数组中获取流。

2.中间操作

对数据源的数据进行操作。

3.终止操作

终止操作执行中间操作链,并产生结果。
这里要注意对流操作完成之后需要进行关闭操作。

三、Stream的具体操作

1、中间操作-筛选与切片

filter:接收Lambda表达式,从流中排除某些操作。
limit:截断流,使元素不超过给定对象。
skip(n):跳过元素,返回一个扔掉了前n个元素的流
distinct:筛选,通过流生成的hashCode()和equals()去除重复的元素。

2、中间操作-映射

map:接收Lambda,将元素转换为其他形式或者提取信息。接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。
flatMap:接收一个函数作为参数,将流中的每一个值都换成另一个流,然后把所有的流连接成一个流。

就在这里我们想把List转换为int数组


 public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();

        list.add(1);
        list.add(2);

        int[] arr = list.stream().mapToInt(Integer::intValue).toArray();
     for(int i:arr){
         System.out.println(i);
     }
    }

3.中间操作-排序

sorted():自然排序
sorted(Comparator com):定制排序

5.终止操作-查找和匹配

  • allMatch–检查是否匹配所有元素
  • anyMatch–检查是否至少匹配一个元素
  • noneMatch–检查是否没有匹配所有元素
  • findFirst–返回第一个元素
  • findAny–返回当前流中的任意元素
  • count–返回流中元素的总个数
  • max–返回流中最大值
  • min–返回流中最小值

该处使用的url网络请求的数据。

总结

这里就是我想告诉大家的,大家可以多用流操作,不然就只能用一下循环来转换了。

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