java把List某个属性的值是相同前缀的作为map的key,value是前缀相同对应的对象集合
时间: 2024-03-26 15:39:10 浏览: 48
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
您可以尝试使用Java 8中的Stream API和Collectors.groupingBy()方法来实现这个需求。具体做法如下:
假设有一个名为list的List对象,其中存储了许多对象,每个对象都有一个属性名为prefix,表示前缀。现在需要根据这个前缀来对对象进行分组,将前缀相同的对象放在同一个集合中,并以前缀作为Map的key。
那么可以使用下面的代码来实现:
```java
Map<String, List<Object>> map = list.stream()
.collect(Collectors.groupingBy(obj -> obj.getPrefix().substring(0, 2)));
```
上述代码中,我们使用了Stream的groupingBy()方法,将list中的对象按照前缀的前两个字符来进行分组,最终返回一个Map对象,其中key为前缀,value为对应的对象集合。
需要注意的是,上述代码中,我们使用了substring()方法来截取前缀的前两个字符,您可以根据实际需求来修改这个数字。另外,由于我们并不清楚每个前缀到底有多长,因此需要使用substring()方法来截取前缀的一部分,以便进行分组。如果您的前缀长度是固定的,那么可以直接使用charAt()方法来获取前缀的某个字符,不需要使用substring()方法。
阅读全文