Java list集合有两条数据,将两条数据相同的字段拼接成Map类型,map的key为相同字段名,value为list集合,list里面是两个相同字段的值
时间: 2024-03-15 16:46:04 浏览: 78
Java lambda list转换map时,把多个参数拼接作为key操作
5星 · 资源好评率100%
可以使用Java中的Map和List来实现这个功能。具体的做法是,遍历List中的元素,将相同字段名的值拼接到Map中。
以下是一个简单的示例代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
List<Data> list = new ArrayList<>();
list.add(new Data("name", "Tom"));
list.add(new Data("age", "18"));
list.add(new Data("name", "Jerry"));
list.add(new Data("age", "20"));
Map<String, List<String>> map = new HashMap<>();
for (Data data : list) {
String key = data.getKey();
String value = data.getValue();
if (map.containsKey(key)) {
map.get(key).add(value);
} else {
List<String> valueList = new ArrayList<>();
valueList.add(value);
map.put(key, valueList);
}
}
System.out.println(map);
}
}
class Data {
private String key;
private String value;
public Data(String key, String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
}
```
在这个示例中,我们先定义了一个Data类,用来存储每个字段的名字和值。然后,我们创建了一个List,将两条数据存储在其中。接着,我们创建了一个Map,用来存储相同字段名的值。遍历List中的元素,将相同字段的值拼接到Map中。最后,输出Map的内容。
执行以上代码,可以得到以下输出:
```
{age=[18, 20], name=[Tom, Jerry]}
```
其中,Map的key为字段名,value为List类型,包含了相同字段名的值。
阅读全文