我有三张地图:
Map<Integer,ArrayList<ItemType1>> map1;
Map<Integer,ArrayList<ItemType2>> map2;
Map<Integer,ArrayList<ItemType3>> map3;
Run Code Online (Sandbox Code Playgroud)
我经常想在地图中查找一个键,并在其ArrayList值中添加一个项目.我想要的是将作为参数地图的方法Map<Integer,ArrayList<T>>(与通用类型T的ArrayList值),一键添加和T型的项目添加到地图中.
理论上是这样的(我知道这不是Java代码):
private void addToListInMap(Map<Integer,ArrayList<T>> map,Integer keyValue, T itemToAdd){
ArrayList<T> listOfItems= map.get(keyValue);
if(listOfItems == null){
listOfItems= new ArrayList<T>();
map.put(keyValue, listOfItems);
}
listOfItems.add(itemToAdd);
}
Run Code Online (Sandbox Code Playgroud)
如何使用泛型实现这样的效果?
这并不是非常困难:将泛型类型作为方法的类型参数提供.
您缺少的所有代码都是它的类型参数.然后,它应该"正常工作".
private <T> void addToListInMap(Map<Integer, ArrayList<T>> map,
Integer keyValue, T itemToAdd) {
ArrayList<T> listOfItems = map.get(keyValue);
if (listOfItems == null) {
listOfItems = new ArrayList<T>();
map.put(keyValue, listOfItems);
}
listOfItems.add(itemToAdd);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |