java 8新特性 使用stream流来操作list

Java 8的Stream API引入了一些强大的功能,可以使集合的操作更加简洁和高效。以下是一些常见的实用操作及其示例:

  1. 过滤(Filter):根据指定的条件过滤集合中的元素。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenNumbers = numbers.stream()
                                   .filter(n -> n % 2 == 0)
                                   .collect(Collectors.toList());
System.out.println(evenNumbers); // 输出:[2, 4, 6]

同时过滤也可以实现筛选两个集合的共有元素,或者独有元素

List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
        List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);
        //共有元素
        List<Integer> commonElements = list1.stream()
                .filter(list2::contains)
                .collect(Collectors.toList());
        System.out.println(commonElements);
        //List1的独有元素
        List<Integer> oList1 = list1.stream().
                filter(element->!list2.contains(element))
                .collect(Collectors.toList());
        System.out.println(oList1);
        //list2的独有元素
        List<Integer> oList2 = list2.stream()
                .filter(element->!list2.contains(element))
                .collect(Collectors.toList());
        System.out.println(oList2);
  1. 映射(Map):将集合中的元素映射到另一个值。
List<String> names = Arrays.asList("John", "Jane", "Mike");
List<Integer> nameLengths = names.stream()
                                 .map(String::length)
                                 .collect(Collectors.toList());
System.out.println(nameLengths); // 输出:[4, 4, 4]
  1. 排序(Sort):对集合中的元素进行排序。
List<String> fruits = Arrays.asList("apple", "banana", "orange");
List<String> sortedFruits = fruits.stream()
                                 .sorted()
                                 .collect(Collectors.toList());
System.out.println(sortedFruits); // 输出:[apple, banana, orange]
  1. 匹配(Match):判断集合中的元素是否满足指定条件。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
boolean allEven = numbers.stream().allMatch(n -> n % 2 == 0);
boolean anyEven = numbers.stream().anyMatch(n -> n % 2 == 0);
System.out.println(allEven); // 输出:false
System.out.println(anyEven); // 输出:true
  1. 归约(Reduce):将集合中的元素进行累积计算。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
int sum = numbers.stream().reduce(0, (a, b) -> a + b);
System.out.println(sum); // 输出:21

这些只是Stream API中的一些常见操作,还有很多其他的功能和操作可以进行。通过结合不同的操作,可以实现更复杂和灵活的集合处理逻辑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java 8引入了Stream API,它是一种的处理集合的方式,可以用更简洁、更易读的代码处理集合数据。Stream API提供了非常方便的、高效的数据处理方式,包括筛选、排序、映射、归约等。 下面是一些Stream的常用操作: 1. filter():筛选符合条件的元素 ```java List<String> list = Arrays.asList("apple", "orange", "banana", "pear", "peach"); List<String> result = list.stream().filter(str -> str.contains("e")).collect(Collectors.toList()); ``` 2. map():将元素转换成其他形式或提取信息 ```java List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5); List<Integer> result = nums.stream().map(num -> num * num).collect(Collectors.toList()); ``` 3. sorted():对元素进行排序 ```java List<Integer> nums = Arrays.asList(5, 3, 1, 2, 4); List<Integer> result = nums.stream().sorted().collect(Collectors.toList()); ``` 4. distinct():去重 ```java List<Integer> nums = Arrays.asList(1, 2, 3, 3, 4, 4, 5); List<Integer> result = nums.stream().distinct().collect(Collectors.toList()); ``` 5. limit():截取中前n个元素 ```java List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5); List<Integer> result = nums.stream().limit(3).collect(Collectors.toList()); ``` 6. skip():跳过中前n个元素 ```java List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5); List<Integer> result = nums.stream().skip(3).collect(Collectors.toList()); ``` 7. reduce():将中元素归约为一个值 ```java List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5); int result = nums.stream().reduce(0, (a, b) -> a + b); ``` 这些操作只是Stream API中的一部分,还有很多其他操作可以使用Stream API可以让我们更加方便地处理集合数据,提高开发效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值