有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java通用地图打印函数

我有一个函数可以打印Map个对象

public static void printMap(Map<Integer, Integer> map) {
    for (Map.Entry<Integer, Integer> entry : map.entrySet()) {          
        System.out.println( entry.getKey() + " " + entry.getValue() );
    }
}

现在,我希望我的函数也能处理Map<String, Integer>类型的映射。怎么做?我一直想用泛型,希望这个问题有一个好的开始


共 (3) 个答案

  1. # 1 楼答案

    怀疑你真的需要这个方法——使用toString()的Map实例,就是这样

  2. # 2 楼答案

    您可以编写通用方法,如下代码所示:

    public static <K, V> void printMap(Map<K, V> map) {
        for (Map.Entry<K, V> entry : map.entrySet()) {          
             System.out.println( entry.getKey() + " " + entry.getValue() );
        }
    }
    

    建议阅读:


    正如@JBNizet在评论中指出的那样,您也可以使用通配符(?)而不是类型参数来编写方法,如下所示:

    public static void printMap(Map<?, ?> map) {
        for (Map.Entry<?, ?> entry : map.entrySet()) {          
             System.out.println( entry.getKey() + " " + entry.getValue() );
        }
    }
    
  3. # 3 楼答案

    可以使用通配符Map<? extends Object, Integer>来实现这一点。这一行意味着你可以拥有任何扩展对象类的东西。所以它可以是StringIntegerUserDefinedObject。什么都行