Cha*_*aos -1 java collections json hashmap
我正在创建一个HashMap,如下所示:
private HashMap <String, JSONArray> HiveMap;
HiveMap = new HashMap <String, JSONArray>();
Run Code Online (Sandbox Code Playgroud)
还有一个私有类变量来存储一些计算数据,这些数据将在计算完成后放入HashMap:
private JSONArray hiveList;
Run Code Online (Sandbox Code Playgroud)
在计算hiveList之后,我将hiveList放入创建的HashMap(HiveMap)中:
HiveMap.put(hiveNode,hiveList);
Run Code Online (Sandbox Code Playgroud)
当我现在打印出HiveMap时,我得到的输出是预期的,包含字段hiveNode和hiveListHashmap中的现有字段.<"hiveNode":"hiveList">
完成后,我假设我放入HashMap的数据hiveList将继续存在,所以我清除了hiveList数组hiveList.clear();
但是当我在清除hiveList之后打印Hashmap时,我发现来自hiveList的数据也从HashMap中消失了.
清除hiveList后打印HashMap会导致: <"hiveNode": >
我不明白这种行为,如果有人能对此有所了解,我将不胜感激.
错误是这样的:
完成此操作后,我假设我从hiveList放入HashMap的数据将继续存在,所以我使用hiveList.clear()清除了hiveList数组;
传递给哈希映射的是对列表的引用,而不是它的副本.
最简单的解决方法是创建一个新实例而不是清除它.或者,您可以制作副本,并将其放在地图中.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |