【发布时间】:2014-02-12 23:06:22
【问题描述】:
我有一个 HashMap,它将 Id 存储为键,将 ArrayList 存储为值。对于特定键,我想获取相应的 ArrayList 并操作该 ArrayList 中的 IEntity 类型的元素之一。
我的问题是,当我更新元素的属性时,这是否也会反映在 HashMap 内的 ArrayList 中?或者我是否必须删除列表,替换列表中的该元素并再次插入该键的列表以查看 HashMap 中的反映值。我知道 Java 是按价值传递的,但我有点难以理解这种情况。
下面是我的代码。谢谢
ArrayList<IEntity> list = myMap.get(id);
Iterator<IEntity> itr = list.iterator();
while(itr.hasNext()){
IEntity element = itr.next();
if(element.checkSomeProperty() == false){
element.setThatProperty(true);
// will above statement reflect the change in ArrayList stored in HashMap as well?
}
}
【问题讨论】: