详解Java 8新特性Stream的应用案例

原创 朱雀 2024-09-18 09:21 168阅读 0赞

Java 8引入了新的流(Stream)API,简化了数据处理和操作。以下是几个Stream应用的案例:

  1. 数组排序
    使用Arrays.sort()方法,但是提供一个实现公平比较的Comparator。
  1. import java.util.Arrays;
  2. import java.util.Comparator;
  3. public class ArraySort {
  4. public static void main(String[] args) {
  5. Integer[] array = {5, 3, 9, 1};
  6. Arrays.sort(array, new Comparator<Integer>() {
  7. @Override
  8. public int compare(Integer o1, Integer o2) {
  9. return o1 - o2; // 或者使用等价的正负号逻辑操作
  10. }
  11. }));
  12. System.out.println("Sorted array: " + Arrays.toString(array));
  13. }
  14. }
  1. 过滤特定元素
    使用filter()方法,根据条件(例如年龄大于30)过滤出符合条件的元素。
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. public class FilterExample {
  4. public static void main(String[] args) {
  5. // 创建一个包含不同年龄元素的列表
  6. List<Integer> ages = new ArrayList<>();
  7. ages.add(25);
  8. ages.add(35);
  9. ages.add(45);
  10. ages.add(55);
  11. // 使用filter()方法过滤出年龄大于30的元素
  12. List<Integer> filteredAges = ages.stream()
  13. .filter(age -> age > 30))
  14. .collect(Collectors.toList()));
  15. System.out.println("Filtered ages: " + filteredAges);
  16. }
  17. }
  1. 聚合统计
    使用map()collect()和各种聚合函数(如sum(), average(), count()等)进行数据的计数、求和、平均等操作。
  1. import java.util.HashMap;
  2. import java.util.Map;
  3. public class AggregationExample {
  4. public static void main(String[] args) {
  5. // 创建一个示例映射,键为元素类型,值为元素列表
  6. Map<String, List<Integer>> agesByType = new HashMap<>();
  7. agesByType.put("Adult", Arrays.asList(35, 45)));
  8. agesByType.put("Child", Arrays.asList(10, 15)));
  9. // 使用collect()方法和Map的聚合操作,统计每个类型元素的数量
  10. Map<String, Integer> countsByType = agesByType.values().stream()
  11. .collect(Collectors.toMap(List::size), List::get)));
  12. System.out.println("Counts by type: " + countsByType));
  13. }
  14. }

以上是Java 8 Stream API的一些常见应用案例,通过这些操作可以更高效地处理数据。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,168人围观)

还没有评论,来说两句吧...

相关阅读