Java HashMap<;长字符串>;和HashMap<>;?
两者的区别是什么Java HashMap<;长字符串>;和HashMap<>;?,java,collections,Java,Collections,两者的区别是什么 Map map = new HashMap<Long, String>(); Map Map=newhashmap(); 及 Map Map=newhashmap(); 哪个更好用?为什么?规范HashMap()只是针对参数类型。但是您所展示的两个用例都是不好的(我只是认为它是错误的),因为map对象没有参数类型。你应该做的是 Map<Long, String> map = new HashMap<Long, String>(); M
Map map = new HashMap<Long, String>();
Map Map=newhashmap();
及
Map Map=newhashmap();
哪个更好用?为什么?规范
HashMap()
只是针对参数类型。但是您所展示的两个用例都是不好的(我只是认为它是错误的),因为map
对象没有参数类型。你应该做的是
Map<Long, String> map = new HashMap<Long, String>();
Map Map=newhashmap();
这和
Map<Long, String> map = new HashMap<>();
Map Map=newhashmap();
这两行之间的唯一区别是您是否希望依赖JDK的自动类型推断
附录:
实际上应该是
Map Map=newhashmap()代码>中的两个字段表示映射的键和值类型。所以在这个例子中,它是一个字符串映射,它被长值引用。在声明中包含它们将强制映射确保映射只能具有特定的键/值类型。过去,类型必须包含在作业的
中,但自Java 7以来就不再需要了。您可能需要阅读泛型:您阅读过文档了吗?了解a和a是什么在您的示例中,Long
将是键的类型,String
将是值的类型。不能有没有泛型类型的HashMap。@MC10当然可以。它被称为原始类型,应该不惜一切代价避免它,后者不会编译Java 7++之前的版本。我不确定JKD7之前的版本,只是在谷歌上确认一下!
Map<Long, String> map = new HashMap<>();