我试图将值添加到具有以下结构的多值HashMap中:
Map< Integer, List<Float> > map = new HashMap< Integer, List<Float> >();
我其实是想坚持一个特定项目(A View的Android中的如信息)的引用,所以Integer值HashMap将包含的项目ID是唯一的,List的Float旨意所包含的项X坐标值。用户在屏幕上可以有很多项目,他也可以有100个具有相同ID的项目,因此相应地,列表将包含每个项目X坐标值。
Integer
HashMap
ID
List
Float
更清楚地说,我的HashMap将包含以下数据
{1,{200,400.5,500.6 …}},其中1是键,其余是ID为1的商品的Float值。
现在,我将List值添加如下:
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);
我现在面临的问题是,每次创建新ID时如何实例化一个新列表。
我将不得不为100个项目创建100个列表,这是不可行的,因为不知道ID的数量。
是否有更好的方法来解决此问题…
我也想找到一种方法,从中删除特定键的特定值 HashMap
这个怎么样 :
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); } }
这样,您可以使用这些方法轻松地添加和删除项目。