通过使用stream()
方法和自定义的条件判断,可以实现函数条件分组。
在Collectors.groupingBy()
方法中,我们可以使用一个lambda表达式来定义分组的依据。在lambda表达式中可以使用条件判断语句来进行多条件分组。
以下是一个示例代码,演示如何使用stream()
实现函数条件分组:
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class FunctionGroupingExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 根据奇偶性进行分组
Map<String, List<Integer>> groups = numbers.stream().collect(Collectors.groupingBy(e -> {
if (e % 2 == 0) {
return "even";
} else {
return "odd";
}
}));
// 输出结果
groups.forEach((key, value) -> System.out.println(key + ": " + value));
}
}
运行以上代码将输出以下结果:
even: [2, 4, 6, 8, 10]
odd: [1, 3, 5, 7, 9]
在上述示例中,我们使用一个lambda表达式作为Collectors.groupingBy()
方法的参数,根据数字的奇偶性进行分组。如果数字是偶数,则返回字符串"even";如果数字是奇数,则返回字符串"odd"。
你可以根据具体的需求,修改分组的条件和数据类型,实现自己的函数条件分组功能。只需在lambda表达式中添加相应的条件判断即可。