3

Javaでグラフをコーディングしようとしていますが、メンバー変数の1つは、文字列を整数にマップするマップです。整数はのインデックスですList<List<Integer>>。私が次のようなグラフを持っているとしましょう

"Alpha"   maps to 0, 
"Beta"    maps to 1, 
"Charlie" maps to 2, 
"Delta"   maps to 3. 

グラフから削除した場合、シフトダウンしBetaたい。ただし、Javaマップ関数はキーではなく値しか取得できないため、マッピングを変更することはできません。どうすればこれを行うことができますか?CharlieDelta

4

2 に答える 2

0

LinkedHashMap を使用します。そこでは、キーの挿入順序が維持されます。

キーをアルファベット順 (またはその他の方法) で維持する場合は、TreeMap を使用します。この場合、エントリを削除すると、キーは規則 (アルファベット順など) に従って並べ替えられます。TreeMap の優れた点は、ここで並べ替えルールを定義できることです。

しかし、いずれにせよ、HashMap は適切な選択ではありません。

于 2012-09-27T03:51:45.817 に答える
0

ハッシュマップは、2 つの異なるオブジェクトをリンクするのに最適です。この例を参照してください。

于 2012-09-27T05:39:33.950 に答える