2012-04-08 6 views
3

複数値のHashMapにアイテムを追加したり削除したりするにはどうすればよいですか?私は、次の構造である多値のHashMapに値を追加しようとしています

Map< Integer, List<Float> > map = new HashMap< Integer, List<Float> >(); 

は、私が実際に特定の項目(例えばためのAndroidで閲覧者の情報)への参照を保持したかったので、IntegerHashMapの値は、IDが一意である項目を含み、ListFloatの項目にX座標値を含みます。ユーザーは画面上に多くのアイテムを持つことができます。また、同じIDを持つ100個のアイテムを持つこともできます。したがって、Listには各アイテムのX座標値が含まれます。 1キー、残りはIDが1の項目のためのフロート値ですされて私のHashMapのは

{1、{200、400.5、500.6 ...}}以下のデータが含まれていますがより明確にする

、次のように。

今私は私が今直面しています問題は、どのように私は毎回新しいIDが作成された新しいリストをインスタンス化することができますのよう考え出すさ

List<Float> list = new ArrayList<Float>(); 

list.add(x_coord_1); 
list.add(x_coord_2); 
list.add(x_coord_3) 
map.put(1, list); 

...リスト値を追加します。..

私は

は、この問題を解決するためのより良い方法があります。.. 100リストのIDの数を知らず、現実的ではありません100の項目のために作成する必要があります...

また、私は探していました方法は、どのようにこの程度HashMap

答えて

9

から特定のキーの特定の値を削除します。

public class multivalueHashmap { 
    private Map< Integer, List<Float> > map = new HashMap< Integer, List<Float> >(); 

    public void add(Integer id, Float value){ 
     if(!map.containsKey(id)){ 
      map.put(id, new ArrayList<Float>()); 
     } 
     map.get(id).add(value); 
    } 

    public void delete(Integer id, Float value){ 
     if(!map.containsKey(id)){ 
      return; 
     } 
     map.get(id).remove(value); 
    } 
} 

この方法で簡単に項目を追加および削除するメソッドを使用することができます。

+0

リスト内の値を更新するにはどうすればよいですか? –

関連する問題