前言
总结一下 Java 语言中常用的 List 处理流操作。
实现
过滤元素
使用 filter()
方法根据指定的条件过滤列表中的元素。
代码:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println("evenNumbers:" + evenNumbers);
输出:
evenNumbers:[2, 4]
遍历元素
使用 forEach()
方法对列表中的每个元素执行操作。
代码:
List<String> list = Arrays.asList("apple", "banana", "orange");
list.stream().forEach(System.out::println);
输出:
apple
banana
orange
转换元素
使用 map()
方法将列表中的元素按照指定的方式进行转换。
代码:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<Integer> nameLengths = names.stream()
.map(String::length)
.collect(Collectors.toList());
System.out.println("nameLengths:" + nameLengths);
输出:
nameLengths:[5, 3, 7]
排序元素
使用 sorted()
方法对列表中的元素进行排序。
List<Integer> numbers1 = Arrays.asList(5, 2, 8, 1, 6);
List<Integer> sortedNumbers = numbers1.stream()
.sorted()
.collect(Collectors.toList());
System.out.println("sortedNumbers:" + sortedNumbers);
输出:
sortedNumbers:[1, 2, 5, 6, 8]
统计元素
使用 count()
方法获取列表中元素的个数。
代码:
List<String> names1 = Arrays.asList("Alice", "Bob", "Charlie");
long count = names1.stream().count();
System.out.println("count:" + count);
输出:
count:3
匹配元素
- 使用
anyMatch()
方法判断列表中是否存在满足指定条件的元素。 - 使用
allMatch()
方法判断列表中是否所有元素都满足指定条件。
代码:
List<Integer> numbers1 = Arrays.asList(1, 2, 3, 4, 5);
boolean anyEven = numbers1.stream().anyMatch(n -> n % 2 == 0);
System.out.println("anyEven:" + anyEven);
List<Integer> numbers2 = Arrays.asList(1, 2, 3, 4, 5);
boolean allEven = numbers2.stream().allMatch(n -> n % 2 == 0);
System.out.println("allEven:" + allEven);
输出:
anyEven:true
allEven:false
归约操作
使用 reduce()
方法将列表中的元素进行归约操作,例如求和或求最大值。
代码:
List<Integer> numbers3 = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers3.stream().reduce(0, (a, b) -> a + b);
System.out.println("sum:" + sum);
输出:
sum:15
去重元素
使用 distinct()
方法去除列表中的重复元素。
代码:
List<Integer> numbers5 = Arrays.asList(1, 2, 2, 3, 3, 4, 5);
List<Integer> distinctNumbers = numbers5.stream().distinct().collect(Collectors.toList());
System.out.println("distinctNumbers:" + distinctNumbers);
输出:
distinctNumbers:[1, 2, 3, 4, 5]
丢弃元素
使用 dropWhile()
方法丢弃列表中满足指定条件的元素,直到条件不再满足为止。
代码:
List<Integer> numbers6 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> droppedNumbers = numbers6.stream().dropWhile(n -> n < 3).collect(Collectors.toList());
System.out.println("droppedNumbers:" + droppedNumbers);
输出:
droppedNumbers:[3, 4, 5]
总结
总结一下 Java 语言中常用的 List 处理流操作。