java - 从列表中删除对象后将其保留在 map 中

标签 java arraylist collections

使用以下代码,从 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/

相关文章:

java - 对 ArrayList 中的对象进行排序

java - 竞争激烈的消费者-生产者

c# - 修改 C# 字典值

java - Spring JcbcTemplate 调用 Oracle Stored Proc。 Spring 3.2

java - 多人回合制游戏架构问题

java - 检查类的 ArrayList 是否有重复项

java - 对象和数组列表

java - 将文件名放在括号内

java - 使用 App Fuse 直接从数据库模式生成 CRUD 操作

java - Java中按字符对字符串列表进行排序