使用 groupBy 計算出現次數
Java 流中的 groupBy 方法允許我們根據指定的鍵將元素收集到群組中。在本例中,我們希望按字串的值對字串進行分組,並計算每個群組中的出現次數。
為了實現此目的,我們可以使用需要第二個收集器的 groupBy 重載。我們將提供 Collectors.counting() 作為此收集器,它將計算每個群組中的元素。
以下是使用串流實現此操作的方法:
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}
該映射包含兩個條目,「Hello ”映射到2,“World”映射到1。這代表輸入清單中每個單字出現的次數。
注意,我們也可以使用 groupingByConcurrent 來提高效率,尤其是在並發執行安全的場景下。
以上是如何使用 Java Streams 計算清單中字串的出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!