【问题标题】:Fill hash map during creation [duplicate]在创建期间填充哈希图[重复]
【发布时间】:2011-06-16 10:30:30
【问题描述】:

可能重复:
How to Initialise a static Map in Java

如何在初始化时用Java填充HashMap,可能是这样的吗?

public static Map<byte,int> sizeNeeded=new HashMap<byte,int>(){1,1};

【问题讨论】:

    标签: java collections initialization


    【解决方案1】:

    byteint 是原始的,集合适用于对象。你需要这样的东西:

    public static Map<Byte, Integer> sizeNeeded = new HashMap<Byte, Integer>() {{
        put(new Byte("1"), 1);
        put(new Byte("2"), 2);
    }};
    

    这将创建一个新的map 并使用initializer block 调用put 方法来填充数据。

    【讨论】:

    • 不是我,但可能是因为new Byte((byte) 1).. 并且可能不依赖自动装箱.. 并且 init 子句末尾未使用的;.. 看起来很丑!跨度>
    • @dacwe 感谢您指出演员阵容。
    • -1 from be 因为我认为这是一种可怕的滥用行为,而您甚至没有解释它是什么。
    • @Mich 同意。添加信息。谢谢。
    【解决方案2】:

    首先,Java 中不能将原语作为泛型类型参数,所以Map&lt;byte,int&gt; 是不可能的,它必须是Map&lt;Byte,Integer&gt;

    其次,不,目前 Java 中没有集合文字,尽管它们被视为 Project Coin 中的新功能。不幸的是,它们已从 Java 7 中删除,您必须等到 Java 8...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-23
      • 2017-07-26
      • 1970-01-01
      • 2018-12-07
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多