在 Java Streams 中使用 GroupBy 計算出現次數
Java Stream API 提供了強大的機制來有效地操作和聚合資料。常見任務是計算流中元素的出現次數。使用 groupBy() 方法實作此目的需要利用額外的收集器。
考慮以下程式碼片段,其目的是將流中的元素收集到映射中,其中鍵代表唯一元素,值代表它們的出現次數:
List<String> list = Arrays.asList("Hello", "Hello", "World"); // Desired output: // {Hello=2, World=1}
為了實現這一點,我們可以使用帶有Collectors.counting() 收集器的groupBy()方法來執行計數:
import java.util.*; import java.util.stream.*; class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, Long> counted = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); System.out.println(counted); } }
解釋:
產生的計數對應將鍵作為元素,值作為各自的計數:
{Hello=2, World=1}
或者,出於某些場景下的效率考慮,您可以探索使用收集器.groupingByConcurrent。請記住評估您的特定用例是否符合並發分組的安全性要求。
以上是如何使用「groupBy()」計算 Java 流中元素的出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!