java我有一个List<Map<String, Object>>集合他其中有很多相同的id我想用地将他们分类
时间: 2023-11-11 16:49:40 浏览: 68
List<Map<String, Object>>转化为List<JavaBean>工具类
4星 · 用户满意度95%
你可以使用 Java 中的循环和条件语句来将具有相同 id 的元素分类。以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CategorizeList {
public static void main(String[] args) {
List<Map<String, Object>> dataList = new ArrayList<>();
// 假设已经初始化好了 dataList,包含多个具有相同 id 的元素
// 创建一个用于存储分类结果的 Map
Map<Integer, List<Map<String, Object>>> categorizedMap = new HashMap<>();
// 遍历 dataList
for (Map<String, Object> dataMap : dataList) {
int id = (int) dataMap.get("id");
// 检查 categorizedMap 中是否已存在该 id 对应的分类列表
List<Map<String, Object>> categoryList = categorizedMap.get(id);
if (categoryList == null) {
categoryList = new ArrayList<>();
categorizedMap.put(id, categoryList);
}
// 将当前元素添加到对应的分类列表中
categoryList.add(dataMap);
}
// 打印分类结果
for (Map.Entry<Integer, List<Map<String, Object>>> entry : categorizedMap.entrySet()) {
int id = entry.getKey();
List<Map<String, Object>> categoryList = entry.getValue();
System.out.println("id: " + id + ", category: " + categoryList);
}
}
}
```
在上面的示例中,我们首先创建了一个 `List<Map<String, Object>>`,名为 `dataList`,假设它已经初始化好了,包含多个具有相同 id 的元素。
然后,我们创建了一个新的 `Map<Integer, List<Map<String, Object>>>`,名为 `categorizedMap`,用于存储分类结果。接下来,我们使用循环遍历 `dataList`,对于每个元素,我们提取其 id,并检查 `categorizedMap` 中是否已存在该 id 对应的分类列表。如果不存在,则创建一个新的空列表,并将其与 id 关联起来;如果已存在,则直接获取该分类列表。
然后,我们将当前元素添加到对应的分类列表中。最后,我们打印分类结果,遍历 `categorizedMap` 的键值对,获取每个 id 对应的分类列表,并打印出来。
希望这个示例能帮助你将具有相同 id 的元素进行分类。如有其他问题,请随时提问。
阅读全文