这可能不是最好的数据结构,但我想知道是否可以这样做:我有一组工具,每个工具都有一个唯一的 ID 和一堆或属性。每个工具还有一个包含属性的房间集合。我希望使用该工具作为 HashMap 的键和 Chambers 列表作为值。
从数据库中取回所有腔室信息后,我想通过 toolId 获取关键对象(工具),以便将每个腔室添加到相应的工具中。我重写了equals方法和hash方法来使用toolId。
除了带回所有键并遍历它们以查看它们是否等于 toolId 之外,还有什么方法可以获取键对象
到目前为止,这是我的代码:
Public class ToolBean {
Private String toolId;
Private String toolName;
Private String toolOwner;
Public ToolBean(String toolId){
this.toolId = toolId;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ToolBean other = (ToolBean) obj;
if (toolId == null) {
if (other.toolId != null)
return false;
} else if (!toolId.equals(other.toolId))
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((toolId == null) ? 0 : toolId.hashCode());
return result;
}
}
我正在创建的结构将如下所示:
LinkedHashMap<ToolBean, LinkedHashMap<String, ChamberBean>> toolWithChamberMap = new LinkedHashMap<ToolBean, LinkedHashMap<String, ChamberBean>>();
我知道我可以使用具有 Chambers 的 LinkedHashMap (LinkedHashMap) 的 ToolBean 创建一个结构,然后打开工具,将新的房间添加到地图中,然后将工具放回原始地图中。我想知道是否有办法跳过这一步。
谢谢,布丽塔