List[{l:1,h:1},{l:2,h:1},{l:2,h:2},{l:3,h:1},{l:3,h:2},{l:3,h:3}]按l分组java怎么写
时间: 2024-09-28 19:17:23 浏览: 23
在Java中,你可以使用`Stream API`以及`Collectors.groupingBy()`函数来按照`l`字段对列表进行分组。这是一个例子:
```java
import java.util.*;
import java.util.stream.Collectors;
List<YourClass> list = Arrays.asList(new YourClass(1, 1), new YourClass(2, 1), new YourClass(2, 2), new YourClass(3, 1), new YourClass(3, 2), new YourClass(3, 3)); // 假设YourClass有一个l和h属性
Map<Integer, List<YourClass>> groupedList = list.stream()
.collect(Collectors.groupingBy(YourClass::getL));
for (Map.Entry<Integer, List<YourClass>> entry : groupedList.entrySet()) {
int key = entry.getKey();
List<YourClass> group = entry.getValue();
System.out.println("Key: " + key + ", Group: [" + group.stream().map(obj -> obj.h).collect(Collectors.joining(", ")) + "]");
}
```
在这个例子中,`YourClass`需要有一个名为`getL()`的方法返回`l`值。`groupingBy(YourClass::getL)`会根据每个对象的`l`属性将它们分到对应的列表中。
阅读全文