我有一个包含元素映射的容器。
class MyContainer{
.....
Map<String,MyElement> elements = new ...
...
}
每个元素都有 name 属性。地图中的键是元素的名称。即方法插入如下:
void addElement(MyElement elem){
elements.put(elem.getName,elem);
}
我需要使用地图数据结构,因为我有很多基于元素名称的读取操作。
问题是我需要支持元素名称的修改。更改元素名称必须在地图中派生更改。(使用新键插入元素,否则我将无法找到该元素)
我想过两个选择:
将 setName 方法添加到 MyElement 类,该方法将更新其名称已更改的容器。
不要在 MyElement 类中添加 setName 方法,在容器中添加重命名元素方法,容器将负责更新地图中的元素名称和键。
选项 1 意味着我必须保持从每个元素到容器的引用。(这部分程序应该保持低内存占用)。
你说什么?你看到更好的选择了吗?