List projectSituation = datacenterV5Dao.getProjectSituations(jsonObject.getString("pid"), jsonObject.getString("type"),groupid); List projectSituations = datacenterV5Dao.getProjectSituation(jsonObject.getString("pid"), jsonObject.getString("type"),groupid); 计算这两个list中相同的cs.taskname ,nui.realname,ni.name 分别放在一个map中
时间: 2024-03-22 22:37:05 浏览: 183
java计算同一个list中是否有相同的值
5星 · 资源好评率100%
好的,我理解你的问题了。你想要将两个 List 中相同的 cs.taskname、nui.realname 和 ni.name 分别放到一个 Map 中。我假设 cs.taskname、nui.realname 和 ni.name 都是 String 类型的,那么可以按照以下步骤进行:
1. 创建一个 Map 对象,用于存储相同的 cs.taskname、nui.realname 和 ni.name。代码如下:
```
Map<String, List<String>> resultMap = new HashMap<>();
```
2. 遍历第一个 List,将其中的 cs.taskname、nui.realname 和 ni.name 组合成一个字符串作为 Map 的 key,将对应的值存放到 Map 的 value 中。代码如下:
```
for (Object obj : projectSituation) {
Map<String, Object> map = (Map<String, Object>) obj;
String key = map.get("taskname") + "," + map.get("realname") + "," + map.get("name");
List<String> valueList = new ArrayList<>();
valueList.add(map.get("someValue1").toString()); // 将需要存放的值添加到 valueList 中
valueList.add(map.get("someValue2").toString());
// ...
if (resultMap.containsKey(key)) { // 如果 Map 中已经存在该 key,则将 valueList 添加到对应的列表中
resultMap.get(key).addAll(valueList);
} else { // 否则,创建一个新的列表,并将 valueList 添加到其中
resultMap.put(key, valueList);
}
}
```
3. 遍历第二个 List,将其中的 cs.taskname、nui.realname 和 ni.name 组合成一个字符串作为 Map 的 key,将对应的值存放到 Map 的 value 中。代码如下:
```
for (Object obj : projectSituation) {
Map<String, Object> map = (Map<String, Object>) obj;
String key = map.get("taskname") + "," + map.get("realname") + "," + map.get("name");
List<String> valueList = new ArrayList<>();
valueList.add(map.get("someValue1").toString()); // 将需要存放的值添加到 valueList 中
valueList.add(map.get("someValue2").toString());
// ...
if (resultMap.containsKey(key)) { // 如果 Map 中已经存在该 key,则将 valueList 添加到对应的列表中
resultMap.get(key).addAll(valueList);
} else { // 否则,创建一个新的列表,并将 valueList 添加到其中
resultMap.put(key, valueList);
}
}
```
4. 遍历 Map,输出其中的 key 和 value。代码如下:
```
for (Map.Entry<String, List<String>> entry : resultMap.entrySet()) {
String key = entry.getKey();
List<String> valueList = entry.getValue();
System.out.println("Key: " + key);
System.out.println("Value: " + valueList);
}
```
这样,就可以将两个 List 中相同的 cs.taskname、nui.realname 和 ni.name 分别放到一个 Map 中了。
阅读全文