中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

java流怎樣正確使用

小樊
81
2024-11-20 18:43:03
欄目: 編程語言

Java流(Stream)是一種用于處理數據集合的高級抽象,它允許你以聲明式的方式處理數據。要正確使用Java流,請遵循以下步驟:

  1. 引入必要的包:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
  1. 創建一個數據集合:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
  1. 使用流操作:

    • 過濾:根據條件篩選元素。

      List<String> filteredNames = names.stream()
          .filter(name -> name.length() > 3)
          .collect(Collectors.toList());
      System.out.println(filteredNames); // 輸出: [Alice, Charlie, David]
      
    • 映射:將每個元素轉換為另一種類型。

      List<Integer> lengths = names.stream()
          .map(String::length)
          .collect(Collectors.toList());
      System.out.println(lengths); // 輸出: [5, 3, 7, 5]
      
    • 排序:對元素進行排序。

      List<String> sortedNames = names.stream()
          .sorted()
          .collect(Collectors.toList());
      System.out.println(sortedNames); // 輸出: [Alice, Bob, Charlie, David]
      
    • 并行流:使用多個線程處理數據,以提高性能。

      long startTime = System.currentTimeMillis();
      List<Integer> parallelLengths = names.parallelStream()
          .mapToInt(String::length)
          .collect(Collectors.toList());
      long endTime = System.currentTimeMillis();
      System.out.println(parallelLengths); // 輸出: [5, 3, 7, 5]
      System.out.println("Time taken: " + (endTime - startTime) + " ms");
      
    • 歸約:將流中的元素組合成一個值。

      int sumOfLengths = names.stream()
          .mapToInt(String::length)
          .sum();
      System.out.println(sumOfLengths); // 輸出: 20
      
    • 查找:根據條件查找元素。

      Optional<String> firstLongName = names.stream()
          .filter(name -> name.length() > 5)
          .findFirst();
      System.out.println(firstLongName.orElse("No long name found")); // 輸出: Charlie
      
  2. 使用終端操作:

    • forEach:對每個元素執行操作。

      names.stream()
          .forEach(name -> System.out.println("Hello, " + name));
      
    • toArray:將流中的元素收集到一個數組中。

      String[] nameArray = names.stream()
          .toArray(String[]::new);
      System.out.println(Arrays.toString(nameArray)); // 輸出: [Alice, Bob, Charlie, David]
      
    • reduce:將流中的元素組合成一個值。

      int maxLength = names.stream()
          .mapToInt(String::length)
          .reduce(0, Integer::max);
      System.out.println(maxLength); // 輸出: 7
      
    • collect:將流中的元素收集到集合中。

      List<String> lowerCaseNames = names.stream()
          .map(String::toLowerCase)
          .collect(Collectors.toList());
      System.out.println(lowerCaseNames); // 輸出: [alice, bob, charlie, david]
      

通過遵循這些步驟,你可以正確地使用Java流來處理數據集合。請注意,流操作是惰性求值的,這意味著只有在執行終端操作時才會實際處理數據。這有助于提高性能,特別是在處理大型數據集時。

0
黄梅县| 合川市| 启东市| 四会市| 常德市| 邻水| 女性| 桑日县| 衢州市| 左权县| 敦煌市| 东平县| 临汾市| 宜春市| 重庆市| 仲巴县| 喀什市| 赤峰市| 内丘县| 巴东县| 乾安县| 桐庐县| 嘉兴市| 张家港市| 鄂尔多斯市| 涟源市| 平武县| 屏边| 疏勒县| 阿拉善右旗| 临猗县| 馆陶县| 临汾市| 栖霞市| 延长县| 天全县| 定远县| 淮南市| 隆林| 岳池县| 榆社县|