我正在尝试将值添加到具有以下结构的多值HashMap中:
Map< Integer, List<Float> > map = new HashMap< Integer, List<Float> >();
我实际上想要保留对特定项目的引用(例如Android中的视图信息),因此Integer
的{{1}}值将包含项HashMap
,这是{唯一的,ID
List
将包含项X坐标值。用户可以在屏幕上有很多项目,他也可以有100个具有相同ID的项目,因此List将包含每个Items X坐标值。
为了更清楚,我的HashMap将包含以下数据
{1,{200,400.5,500.6 ...}},其中1是键,其余是ID为1的项的浮点值。
现在我添加List值如下......
Float
我现在面临的问题是弄清楚每次创建新ID时如何实例化新的List ..
我必须为100个项目创建100个List,这是不可行的,不知道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);
答案 0 :(得分: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);
}
}
这样您就可以使用这些方法轻松添加和删除项目。
答案 1 :(得分:2)