我正在制作一个视图模型,我计划在其中通过 Web 服务接收 JSONObject,问题是我需要接收一个数据列表列表的对象,我知道如何表示这个,创建一个多变的。
private Map<Integer,Map<Integer,Map>> MiListaDeListas;
但是在研究时我遇到了 HashMap 的疑问,我知道一个是另一个的实现,但我无法真正理解它们之间的概念。
有什么区别,在什么情况下最好使用另一种。
我正在制作一个视图模型,我计划在其中通过 Web 服务接收 JSONObject,问题是我需要接收一个数据列表列表的对象,我知道如何表示这个,创建一个多变的。
private Map<Integer,Map<Integer,Map>> MiListaDeListas;
但是在研究时我遇到了 HashMap 的疑问,我知道一个是另一个的实现,但我无法真正理解它们之间的概念。
有什么区别,在什么情况下最好使用另一种。
Map
是一个接口,它定义了维护关系的结构的一般行为key --> value
。所以
HashMap
它只是可能的Map
几种实现之一(尽管可能是最常见的)。的其他实现Map
例如Hashtable
,ConcurrentHashMap
,WeakHashMap
等。每个都有其优点和缺点,具体取决于您要做什么。如果可能,特别是如果您的代码是低级通用库的一部分,使用
Map
. 这允许根据用户的口味将相同的代码与它的任何实现一起使用。例如,如果您定义以下方法:
HashMap
...然后通过传递,Hashtable
,或 . 的任何实现ConcurrentHashMap
可以毫无问题地执行相同的方法TreeMap
Map
但是,如果您的代码绝对需要
Map
a的类型HashMap
(可能出于性能原因或其他原因),那么可以使用它HashMap
来防止在这种情况下使用其他实现。