使用泛型键返回返回散列图的方法

时间:2014-11-30 00:48:14

标签: java generics hashmap

我有一个函数,它接受一个映射,其中键可以是多种类型,值总是整数。我需要对忽略键的值执行操作,并在最后返回地图。

public Map<Sometype, Integer> doSomething(Map<Sometype, Integer> map, Integer total) {
    Map<Sometype, Integer> result = new HashMap<Sometype, Integer>();

    for (Sometype key :  map.keySet()) {
        result.put(key, map.get(key) * 2);
    }

    return result;
}

地图键可以是整数,布尔值和枚举。有没有办法应用泛型,以便我可以将此方法用于任何地图类型?

1 个答案:

答案 0 :(得分:0)

是。您可以在Sometype上将方法设为通用。

public <Sometype> Map<Sometype, Integer> doSomething(
        Map<Sometype, Integer> map, Integer total) {
    Map<Sometype, Integer> result = new HashMap<Sometype, Integer>();
    for (Sometype key : map.keySet()) {
        result.put(key, map.get(key) * 2);
    }
    return result;
}

这也可以写成

public <T> Map<T, Integer> doSomething(Map<T, Integer> map, Integer total) {
    Map<T, Integer> result = new HashMap<T, Integer>();
    for (T key : map.keySet()) {
        result.put(key, map.get(key) * 2);
    }
    return result;
}