-3

次のリストを作成しましたが、最初の定義で(最初の文字列に)ハッシュ マップを使用していますが、今は一意にしたくありません。どのように定義すればよいですか?

HashMap<String, LinkedHashMap<String, String>> entityList = new HashMap<String, LinkedHashMap<String, String>>();

ハッシュ マップはここで定義されているため、メイン リストの重複エントリに入力できます。重複エントリを入力するオプションを提供する定義をどのように変更すればよいでしょうか。

次の構造のように構築する必要があります。

emp<name,test>
   <lastname,lastname>
   <salery,1000> 
emp<firstname,dan>
   <age,20>
adress<post,111>
      <street,hhh> 
4

3 に答える 3

0

または、Guava MultiMap

public interface Multimap<K,V>

Mapに似ていますが、複数の値を1つのキーに関連付けることができるコレクション。同じキーで異なる値を使用して2回呼び出すとput(K, V)、マルチマップにはキーから両方の値へのマッピングが含まれます。

于 2013-03-06T13:01:49.080 に答える
0

あなたが実際に望むのは、同じ一意のキーの多くの値のようなものです。ただし、マップ定義キーはデフォルトで一意です。すべての Map は it キーに関して任意の操作を実行するためです。したがって、アプリケーションには別の構造を使用することをお勧めします。あなたはこのように試すことができます..

HashMap <String, Object> entityList = new HashMap<String, Object>();
LinkedHashMap<String, String> linkedHashmap = new LinkedHashMap<String, String>();
entityList.put("key1", updateObject(entityList.get("key1", newkey, new value);

public LinkedHashMap< String, String> updateObject(LinkedHashMap<String, String> linkedHashmap,String newKey,String newValue){
linkedHashmap.put(newKey,newValue);
return linkedHashmap;
}

于 2013-03-06T12:30:44.763 に答える
0

ハッシュマップを使用するには、キーが一意である必要があります。それ以外の場合 - どうすれば正しい値を取得できますか???

できることは、いくつかの値を単一のキーに関連付けることです。HashMap<String, List<valueType>>

以下を使用できます。

HashMap<String, List<yourObject>>

したがって、すべてのキーには関連するオブジェクトがいくつかあります。

あなたの場合:

HashMap<String, List<LinkedHashMap<String, String>>>

複数のオブジェクトを含むコレクションが必要な場合は、必要に応じてList<yourObject>andを使用できます (例ではandをyourObject保持します)。StringLinkedHashMap<String, String>

私は最初の選択肢を使用しますが、本当にそれが必要ない場合は、List<yourObject>

于 2013-03-06T10:42:47.937 に答える