外部ライブラリを使用せずに、Java で以下を実行するためのより良い方法はありますか。
int (プリミティブ) のグループ/子 (ツリーのような) 構造をモデル化する必要があります。Jsonで
[{1,1}, {1,2}, {2,1},{3,1}]
要素の追加/削除 (要素は {group, child} のペア) を重複なくサポートする必要があります。
のようなデータ構造を維持することを考えています。
ArrayList<HashMap<Integer,Integer>>
たす。
ArrayList を反復処理し、挿入する値に対して HashMap キーと値をチェックし、存在しない場合は挿入します。
削除するには:
ArrayList を反復処理し、削除する値に対して HashMap キーと値をチェックし、存在する場合は削除します。
標準ライブラリを使用したより良いデータ構造/アプローチはありますか。
以下の回答の1つに従って、このようなクラスを作成しました。気をつけることを教えてください。KeyValue クラスの equal メソッドを使用して、arraylist が追加/削除を正しく処理することを期待しています (そして試してみます)。ありがとう。
static class KeyValue {
int groupPos;
int childPos;
KeyValue(int groupPos, int childPos) {
this.groupPos = groupPos;
this.childPos = childPos;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
KeyValue keyValue = (KeyValue) o;
if (childPos != keyValue.childPos) return false;
if (groupPos != keyValue.groupPos) return false;
return true;
}
@Override
public int hashCode() {
int result = groupPos;
result = 31 * result + childPos;
return result;
}
}