在Java中,使用Stream API可以對數據進行分組操作。其中的Collectors.groupingBy()
方法可以用來實現類似SQL中的GROUP BY
功能。通過groupingBy()
方法,可以按照指定的條件對數據進行分組,然后對每個組進行操作或聚合。
具體用法如下:
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "grape", "apple", "orange", "banana");
// 將水果按照首字母進行分組
Map<Character, List<String>> groupByFirstLetter = fruits.stream()
.collect(Collectors.groupingBy(s -> s.charAt(0)));
System.out.println(groupByFirstLetter);
}
}
在上面的例子中,我們將水果按照首字母進行分組,得到一個Map
對象,其中鍵為水果的首字母,值為對應首字母的水果列表。運行代碼后,會輸出以下結果:
{a=[apple, apple], b=[banana, banana], g=[grape], o=[orange]}
這樣就實現了按照首字母對水果進行分組的功能。groupingBy()
方法還可以結合Collectors.counting()
、Collectors.summingInt()
等方法進行進一步操作,實現更復雜的分組統計功能。