API使用疑问:Java 8的流(Stream)操作有哪些常见用法?
在Java 8中,Stream
是一种处理集合元素的新方式。它提供了一种更加灵活、高效的方法来遍历和操作数据。
以下是一些常见的Stream
操作用法:
- 过滤(filter):根据给定的条件,从流中选择满足条件的元素。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names = names.stream()
.filter(name -> name.startsWith("C")) // 仅保留以"C"开头的名字
.collect(Collectors.toList()));
- 映射(map):将流中的每个元素转换为新的值。
Integer[] numbers = {1, 2, 3, 4, 5};
numbers = numbers.stream()
.map(number -> number * 2)) // 将每个数字乘以2
.collect(Collectors.toList()));
- 分组(groupingBy):根据给定的键将流中的元素进行分组。
List<String> emails = Arrays.asList("alice@example.com", "bob@example.com", "charlie@example.co.uk"));
Map<String, List<String>> groupedEmails = emails.stream()
.collect(Collectors.groupingBy(email -> email.split("@")[0]))));
- 排序(sorted):对流中的元素进行排序,可按升序或降序。
List<Integer> numbers = Arrays.asList(3, 1, 4), // 示例数据
Arrays.asList(2, 5)); // 另一个示例数据
numbers.stream()
.collect(Collectors.groupingBy(number -> number % 2 == 0 ? 1 : -1)))) // 按奇偶性分组
.values() // 获取所有奇数分组的值列表
.sorted(Comparator.reverseOrder())); // 对列表进行降序排序
以上就是Java 8流操作的一些常见用法。实际使用时,可以根据需求调整这些操作。
还没有评论,来说两句吧...