java - 使用接口(interface)实例化和具体类实例化之间的区别? (HashMap、Map & List、ArrayList)

标签 java dictionary arraylist collections hashmap

我知道ListMap是可以实现的接口(interface),ArrayListHashMap是可以创建和使用其对象的类。

我知道这两对之间的区别。我的实际问题是,以下两个陈述之间有区别吗?

HashMap< K, V>  myMap = new HashMap<K, V>(); 
Map< K, V> myMap = new HashMap<K, V>();

如果有,那么有什么区别,什么时候应该使用哪一个?同样,有什么区别:

ArrayList< Integer> myList = new ArrayList<Integer>();
List< Integer> myList = new ArrayList<Integer>();

最佳答案

HashMap< K, V> myMap = new HashMap(); 

正在创建一个HashMap实例,正如您在Java中的任何地方看到的那样。

鉴于:

Map< K, V> myMap = new HashMap();

正在创建一个带有具体实现的Map实例,称为接口(interface)编程。

第二种方式,即Programming with interfaces ,为您的程序带来模块化

这里有一个很好的解释,关于它的好处是什么以及何时使用它:

What is the benefit of polymorphism using Collection interface to create ArrayList object?

关于java - 使用接口(interface)实例化和具体类实例化之间的区别? (HashMap、Map & List、ArrayList),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18802190/

相关文章:

java - 不能通过引用传递 android 中的 boolean 变量

python - 通过映射到包含另一列中字符串值子集的字典来创建数据帧列。作为其关键

python - 链式嵌套 dict() 在 python 中获取调用

java - 我如何访问列表的数组元素

java - Java API调用将根据队列大小进行合并,或者在最早的项目插入队列后的4秒内执行

java - 如何将 Java 应用程序安装为服务

java - 如何使用 imageView 一次显示一张图像

arrays - 从 Swift 字典中的数组获取值

java - Java中数组列表元素的排序

java - 如何将 ArrayList 中对象的属性与 Scanner 输入进行比较?