JAVA list 数值型数组, 数值相等的快速分组
时间: 2023-08-15 16:35:47 浏览: 91
如果您有一个Java List数值型数组,其中包含多个数字,并且您需要将它们快速分组,使得数值相等的数字被分到同一个组中,可以使用Java 8中的Stream API和Collectors.groupingBy()方法。具体实现步骤如下:
1. 首先,将数组转换为流。
2. 接下来,您可以使用Collectors.groupingBy()方法将流分组为个集合,根据每个数字的数值进行分组。
3. 最后,将分组结果存储在一个Map中,其中键为数值,值为相应的数字列表。
以下是示例代码:
```java
List<Integer> numbers = // 初始化数字列表
Map<Integer, List<Integer>> result = numbers.stream()
.collect(Collectors.groupingBy(number -> number));
```
在此示例中,我们将数字列表按照数值分组,相同数值的数字将被分配到同一个组中。result将包含多个集合,每个集合都包含相同数值的数字。
需要注意的是,如果您的列表中包含重复的数字,它们将被分配到同一个组中。如果您希望避免这种情况,可以使用Collectors.toSet()方法替代Collectors.toList()方法,这将确保每个组中只包含唯一的数字。例如:
```java
List<Integer> numbers = // 初始化数字列表
Map<Integer, Set<Integer>> result = numbers.stream()
.collect(Collectors.groupingBy(number -> number, Collectors.toSet()));
```
在此示例中,我们使用Collectors.toSet()方法来确保每个组中只包含唯一的数字,result将包含多个集合,每个集合都包含相同数值的唯一数字。
阅读全文