gpt4 book ai didi

java - 使用泛型将泛型类型的对象添加到 map

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:10 25 4
gpt4 key购买 nike

我有三个 map :

Map<Integer,ArrayList<ItemType1>> map1;
Map<Integer,ArrayList<ItemType2>> map2;
Map<Integer,ArrayList<ItemType3>> map3;

我经常想在 map 中查找一个键并将一个项目添加到它的 ArrayList 值中。我想制作一个将 map 作为参数的方法 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);
}

我怎样才能使用泛型实现这样的目标?

最佳答案

这并不太难:将泛型类型作为类型参数提供给您的方法。

您的所有代码都缺少它的类型参数。然后,它应该“正常工作”。

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

关于java - 使用泛型将泛型类型的对象添加到 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27623918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com