小编典典

如何在多值HashMap中添加和删除项目?

java

我试图将值添加到具有以下结构的多值HashMap中:

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

我其实是想坚持一个特定项目(A
View的Android中的如信息)的引用,所以IntegerHashMap将包含的项目ID是唯一的,ListFloat旨意所包含的项X坐标值。用户在屏幕上可以有很多项目,他也可以有100个具有相同ID的项目,因此相应地,列表将包含每个项目X坐标值。

更清楚地说,我的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


阅读 209

收藏
2020-11-26

共1个答案

小编典典

这个怎么样 :

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);
    }
}

这样,您可以使用这些方法轻松地添加和删除项目。

2020-11-26