我有以下代码。 执行items.clear后,为什么hashMap中的项是空的? 如何在HashMap中的项目中保存数据?
Class itemCategory{
String name;
List<itemCategory> items= new ArrayList<itemCategory>();
}
Map<String, Object> CategoryItems= new HashMap<>();
List<itemCategory> items= new ArrayList<itemCategory>();
List<String> names= new ArrayList<String>();
for ( String name: names) {
items.getAllitems(name);
CategoryItems.put(name,items)
items.clear
}
答案 0 :(得分:1)
当您正在使用数组List<itemCategory> items= new ArrayList<itemCategory>();
时,它是一个空数组
您需要将项目添加到列表
itemCategory
items.add(new itemCategory())
您还可以按如下方式初始化List
:
ArrayList<String> list = new ArrayList<String>() {{
add(new itemCategory());
add(new itemCategory());
add(new itemCategory());
}};
现在您可以在 HashMap
items.clear()
而不是列表内容将清除,你将只在hashmap中存储一个项目items
的内容,请在for循环之外设置items.clear()
答案 1 :(得分:0)
问题已解决:
我在HashMap中更改了ArrayList,将name + id作为键,将itemCategory更改为data
我发现ArrayList链接到HashMap中的ArrayList,所以如果对它进行任何操作,都会反映到HashMap中的ArrayList。