如果我使用:
HashMap<String, Integer> test = new HashMap<String, Integer>();
或者我使用:
HashMap test = new HashMap();
我可以在测试对象上应用的其他方法有什么不同吗?如 test.put()、test.get() 等如果初始化不同??
此外,如果我在测试对象中放入一些东西,例如:
test.put("One", new Integer(5));
test.put("Two", new Integer(4));
test.put("Three", new Integer(3));
并将其显示为:
设置set = tokens.entrySet();
迭代器 ik = test.iterator();
while(ik.hasNext()){
Map.Entry me = (Map.Entry)ik.next();
System.out.println(me.getKey() + " : " + me.getValue() );
结果没有排序,结果为:
三:3 一:5 二:1
它遵循什么规则??这是随机显示输出的正常行为吗??
最佳答案
在第一种情况下,Hashmap 键必须是字符串,值必须是整数。编译器将执行相应的类型检查。在第二种情况下,可以使用任何类型的对象。
您的 HashMap 条目以随机顺序打印是完全正常的。如果您想保留顺序,请改用 LinkedHashMap。
关于java - java中这两个对象初始化有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299140/