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

Ari*_*eem 3 java collections hashmap

我正在尝试将值添加到具有以下结构的多值HashMap:

Map< Integer, List<Float> > map = new HashMap< Integer, List<Float> >();
Run Code Online (Sandbox Code Playgroud)

我其实是想坚持一个特定项目(在Android上查看的信息对EG)的引用,所以IntegerHashMap将包含的项目ID是唯一的,ListFloat旨意所包含的项X坐标值.用户可以在屏幕上有许多项目,他也可以有100个具有相同ID的项目,因此List将包含每个Items X坐标值.

为了更清楚,我的HashMap将包含以下数据

{1,{200,400.5,500.6 ...}},其中1是键,其余是ID为1的项的浮点值.

现在我添加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);
Run Code Online (Sandbox Code Playgroud)

我现在面临的问题是弄清楚每次创建新ID时如何实例化新的List.

我将不得不为100个项目创建100个List,这是不可行的,不知道ID的数量.

有没有更好的方法来解决这个问题......

此外,我想找到一种方法从中删除特定键的特定值 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这样您就可以使用这些方法轻松添加和删除项目.