使用以下代码,从 List
中删除后,我在 Map
中丢失了我的对象,但我想将其保留在 Map
中:
ArrayList<object> myList= new ArrayList<>();
Map<String, ArrayList<object>> map = new HashMap<String, ArrayList<object>>();
myList.add(object);
map.put(key1,myList);
map.get(key1); // return [object]
myList.remove(get(index));
map.get(key1); // return []
最佳答案
添加列表后, map 中的列表和单个列表将具有相同的内存地址。因此,单个列表的变化也会反射(reflect)在 map 列表的变化中。
因此,在将列表添加到 map 之前,您必须创建列表的副本。
或者另一个解决方案是您可以在将列表添加到 map 后克隆 map 。
关于java - 从列表中删除对象后将其保留在 map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414568/