初始化HashMap的正确方法,HashMap可以容纳不同的值类型吗?
所以我对HashMapJava中的s 有两个问题:
- 初始化a的正确方法是
HashMap什么?我认为在我的情况下最好使用:HashMap x = new HashMap();
但是Eclipse一直建议我使用:
HashMap<something, something> map = new HashMap();哪个更好?
- 可以
HashMap将不同类型的对象/数据类型保存为值吗?例如,是否可以正常工作:
map.put("one", 1); map.put("two", {1, 2});
map.put("three", "hello");
在第一个中put(),我想要一个inta作为值,在第二个中,我想要int[]一个字符串。用HashMaps
在Java中可以吗?另外,可以将a HashMap作为值存储在HashMap?中吗?
回答:
这实际上取决于您需要哪种类型的安全性。最好的非通用方式是:
Map x = new HashMap();请注意,x键入为Map。这使将来更改实现(更改为TreeMap或LinkedHashMap)变得容易得多。
您可以使用泛型来确保一定级别的类型安全:
Map<String, Object> x = new HashMap<String, Object>();在Java 7及更高版本中,您可以执行
Map<String, Object> x = new HashMap<>();上面虽然比较冗长,但却避免了编译器警告。在这种情况下的内容HashMap可以是任意Object,这样可以Integer,int[]等这是你在做什么。
如果您仍在使用Java 6,则Guava库(尽管很容易自己做)具有一种称为的方法newHashMap(),该方法可以避免在执行时复制通用类型信息new。它从变量声明中推断类型(这是Java
7之前的构造函数不可用的Java功能)。
顺便说一句,当您添加一个int或其他原始类型时,Java会将其自动装箱。这意味着该代码等效于:
x.put("one", Integer.valueOf(1));您当然可以将a
HashMap作为值放置在另一个值中HashMap,但是我认为如果递归地进行操作(将HashMapa作为值本身放置)会出现问题。
以上是 初始化HashMap的正确方法,HashMap可以容纳不同的值类型吗? 的全部内容, 来源链接: utcz.com/qa/426085.html
