これは最良のデータ構造ではないかもしれませんが、これが可能かどうか疑問に思っていました.私はツールのセットを持っており、それぞれが一意の ID と属性を持っています. 各ツールには、属性を含むチャンバーのコレクションもあります。このツールを HashMap のキーとして使用し、Chambers のリストを値として使用したいと考えていました。
データベースからすべてのチャンバー情報を取得したら、各チャンバーを適切なツールに追加できるように、toolId でキー オブジェクト (ツール) を取得します。toolId を使用するために equals メソッドと hash メソッドをオーバーライドしました。
すべてのキーを元に戻し、それらを繰り返し処理してツール ID と等しいかどうかを確認する以外に、キー オブジェクトを取得する方法はありますか
これまでの私のコードは次のとおりです。
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>>();
チャンバーの LinkedHashMap ( LinkedHashMap )を持つ ToolBean を使用して構造を作成し、ツールを開いて新しいチャンバーをマップに追加し、ツールを元のマップに戻すことができることを知っています。そのステップをスキップする方法があるかどうか疑問に思っていました。
ありがとう、ブリタ