arraylist.add(Map)
时间: 2023-09-23 13:11:09 浏览: 79
`ArrayList` 的 `add` 方法可以添加任何类型的对象,包括 `Map` 对象。
示例代码如下:
```
// 创建一个 ArrayList 对象
ArrayList<Map<String, Object>> list = new ArrayList<>();
// 创建一个 Map 对象
Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 20);
// 将 Map 对象添加到 ArrayList 中
list.add(map);
```
上述代码创建了一个 `ArrayList` 对象 `list`,并创建了一个 `Map` 对象 `map`,将 `name` 和 `age` 作为键,`"张三"` 和 `20` 作为值存入 `map` 中。然后,使用 `list` 的 `add` 方法将 `map` 对象添加到 `list` 中。
需要注意的是,`ArrayList` 可以添加任何类型的对象,但是为了避免类型转换的麻烦,通常情况下,我们会定义一个泛型类型,以指定 `ArrayList` 只能添加某种类型的对象。例如:
```
// 创建一个 ArrayList 对象,只能添加 Map<String, Object> 类型的对象
ArrayList<Map<String, Object>> list = new ArrayList<>();
```
相关问题
arraylist.map
从引用中可以看出,遍历Map的两种常用方法是使用keySet和entrySet。通过keySet可以获取一个键的集合,并使用迭代器来遍历键,然后通过键获取对应的值。通过entrySet可以获取一个映射关系的集合,使用增强for循环来遍历每个映射关系,然后分别获取键和值。中提到,ArrayList是一种存储有序可重复元素的数据结构。它具有增加、删除、修改和查找元素的功能。例如,可以通过list.add(int index, Object object)方法在指定位置插入元素。中提到,ArrayList的操作都是线程安全的,不需要额外加锁。多个线程可以同时进行put、remove等操作而不会阻塞。与HashTable不同,HashTable在操作时会锁住整个Map。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [ArrayList及Map常用方法](https://blog.csdn.net/lingbo_li/article/details/79834958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [ArrayList.md](https://download.csdn.net/download/zlfing/12919424)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
优化这段代码 List<Map<String, String>> topModel = new ArrayList<>(); List<Map<String, String>> imageTextModel = new ArrayList<>(); List<Map<String, String>> listModel = new ArrayList<>(); List<Map<String, String>> videoModel = new ArrayList<>(); List<Map<String, String>> cardRotationModel = new ArrayList<>(); List<Map<String, String>> otherModel = new ArrayList<>(); // 获取样式模板字典枚举 for (final StyleModel styleModel : StyleModel.class.getEnumConstants()) { final Map<String, String> map = new HashMap<>(); map.put("sign", styleModel.getSign()); map.put("name", styleModel.getName()); switch (styleModel.getType()) { case 1: topModel.add(map); break; case 2: imageTextModel.add(map); break; case 3: listModel.add(map); break; case 4: videoModel.add(map); break; case 5: cardRotationModel.add(map); break; default: otherModel.add(map); } } BaseEnumUtil.getStyleModel().add(new HashMap<>() {{ put("name", "顶部模板"); put("list", topModel); }}); BaseEnumUtil.getStyleModel().add(new HashMap<>() {{ put("name", "图文模板"); put("list", imageTextModel); }}); BaseEnumUtil.getStyleModel().add(new HashMap<>() {{ put("name", "列表模板"); put("list", listModel); }}); BaseEnumUtil.getStyleModel().add(new HashMap<>() {{ put("name", "视频模板"); put("list", videoModel); }}); BaseEnumUtil.getStyleModel().add(new HashMap<>() {{ put("name", "轮播图模板"); put("list", cardRotationModel); }}); BaseEnumUtil.getStyleModel().add(new HashMap<>() {{ put("name", "其它模板"); put("list", otherModel); }});
可以考虑使用更简洁的代码来优化这段代码:
```
Map<Integer, List<Map<String, String>>> map = new HashMap<>();
for (final StyleModel styleModel : StyleModel.class.getEnumConstants()) {
final Map<String, String> styleMap = new HashMap<>();
styleMap.put("sign", styleModel.getSign());
styleMap.put("name", styleModel.getName());
List<Map<String, String>> styleList = map.getOrDefault(styleModel.getType(), new ArrayList<>());
styleList.add(styleMap);
map.put(styleModel.getType(), styleList);
}
BaseEnumUtil.getStyleModel().addAll(
Arrays.asList(
new HashMap<>() {{ put("name", "顶部模板"); put("list", map.get(1)); }},
new HashMap<>() {{ put("name", "图文模板"); put("list", map.get(2)); }},
new HashMap<>() {{ put("name", "列表模板"); put("list", map.get(3)); }},
new HashMap<>() {{ put("name", "视频模板"); put("list", map.get(4)); }},
new HashMap<>() {{ put("name", "轮播图模板"); put("list", map.get(5)); }},
new HashMap<>() {{ put("name", "其它模板"); put("list", map.getOrDefault(0, new ArrayList<>())); }}
)
);
```
这样可以避免重复的代码以及多余的变量声明,同时使用了 Java 8 的新特性,代码更加简洁易懂。
阅读全文