Strem流

1.1概述说到Strem便容易想到I/O Strem,而实际上,谁规定“流”就一定是流呢?在Java8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。1.2传统集合遍历的弊端需求:筛选出姓张且名字长度为3的人的名字并打印List <String> list = new ArryList<> ();list...
摘要由CSDN通过智能技术生成

1.1概述

说到Strem便容易想到I/O Strem,而实际上,谁规定“流”就一定是流呢?在Java8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。
1.2传统集合遍历的弊端
需求:筛选出姓张且名字长度为3的人的名字并打印

List <String> list = new ArryList<> ();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("老邱");
list.add("张三丰");
List<String> list1 = new ArryList<>();
//筛选姓张的的人名
for (String name : list1) {
    
if (name.startsWith("张")) {
   
 list1.add(name); 
     } 
 }
 List<String> list2 = new ArrayList<>(); 
 // 筛选长度为3的人名 
 for (String name : list1) {
    
 if (3 == name.length()) {
    
 list2.add(name); 
        } 
 }
 System.out.println(list2); 

通过以上代码发现,传统的for循环不仅要专注做什么,还要专注怎么做,Java 8的Lambda让我们可 以更加专注于做什么(What),而不是怎么做(How)


List<String> list = new ArrayList<>();
 list.add("张无忌");
 list.add("周芷若")
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是Stream常用方法的介绍和示例: 1. map方法:用于将中的元素映射为另一种类型,方法签名:Stream<R> map(Function<? super T, ? extends R> mapper)。参数是一个Function函数式接口,用于将中的元素映射为另一种类型。map方法是一个延迟方法,只是对中的元素进行映射,返回的是一个新的。 示例代码: ```java Stream<Integer> stream = Stream.of(1, 2, 3); Stream<String> result = stream.map(String::valueOf); result.forEach(System.out::println); // 输出:1 2 3 ``` 2. filter方法:用于过滤中的元素,方法签名:Stream<T> filter(Predicate<? super T> predicate)。参数是一个Predicate函数式接口,用于判断中的元素是否符合条件。filter方法是一个延迟方法,只是对中的元素进行过滤,返回的是一个新的。 示例代码: ```java Stream<Integer> stream = Stream.of(1, 2, 3); Stream<Integer> result = stream.filter(i -> i > 1); result.forEach(System.out::println); // 输出:2 3 ``` 3. limit方法:用于截取中的元素,只取用前n个,方法签名:Stream<T> limit(Long maxSize)。参数是Long类型,如果集合当前长度大于参数则进行截取,不进行操作。limit方法是一个延迟方法,只是对中的元素进行截取返回的是一个新的。 示例代码: ```java Stream<String> stream = Stream.of("张无忌", "张三丰", "周芷若"); Stream<String> result = stream.limit(2); System.out.println(result.count()); // 输出:2 ``` 4. skip方法:用于跳过中的元素,方法签名:Stream<T> skip(Long n)。参数是Long类型,表示跳过前n个元素。skip方法是一个延迟方法,只是对中的元素进行跳过,返回的是一个新的。 示例代码: ```java Stream<Integer> stream = Stream.of(1, 2, 3); Stream<Integer> result = stream.skip(1); result.forEach(System.out::println); // 输出:2 3 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值