更新时间:2023-12-05 16:02:22
这个怎么样:
public class multivalueHashmap {
private Map<整数,列表<浮点> > map = new HashMap<整数,列表<浮点> >();
$ b 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);
code
$ b这样你就可以使用这些方法来轻松地添加和删除项目。
I am trying to add values to a multivalue HashMap which is of the following structure:
Map< Integer, List<Float> > map = new HashMap< Integer, List<Float> >();
I actually wanted to hold a reference to a particular item (A View's info in Android for e.g.), so the Integer
value of the HashMap
will contain the items ID
which is unique, the List
of Float
s will contain the items X coordinate values. The user can have many items on the screen, he can also have 100 items with same ID, so accordingly the List will contain each Items X coordinate value.
To be more clear my HashMap will contain the following data
{1,{200, 400.5, 500.6 ...}}, where 1 is the key and the rest are Float values for Item with ID 1.
Right now I add the List values as follows...
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);
The problem I am facing now is figuring out as of how can I instantiate a new List everytime a new ID is created..
I would have to create 100 List's for 100 items which is not feasible, not knowing the number of ID's..
Is there a better approach to solve this issue...
Also I wanted to find a way to delete a specific value of a particular key from the HashMap
How about this :
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);
}
}
This way you can use the methods to easily add and remove items.