作者大大,你好。在Java集合常见面试题总结(上)中,你提到说:“Map(用 key 来搜索的专家): 使用键值对(key-value)存储,类似于数学上的函数 y=f(x),"x" 代表 key,"y" 代表 value,key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。”
我觉得,对于Map不管什么情况下,所有key之间、value之间,本身是没有任何关联的,也就是说,单独讨论key和value的有序性其实意义不大。而它的有序无序性应该是看内部存放的键值对这个整体,例如HashMap,键值对之间没有关联,无序;LinkedHashMap,通过内部维护的双向链表,将所有键值对联系起来,有序;TreeMap,所有的键值对之间通过红黑树关联起来,有序。
作者大大,你好。在Java集合常见面试题总结(上)中,你提到说:“Map(用 key 来搜索的专家): 使用键值对(key-value)存储,类似于数学上的函数 y=f(x),"x" 代表 key,"y" 代表 value,key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。”
我觉得,对于Map不管什么情况下,所有key之间、value之间,本身是没有任何关联的,也就是说,单独讨论key和value的有序性其实意义不大。而它的有序无序性应该是看内部存放的键值对这个整体,例如HashMap,键值对之间没有关联,无序;LinkedHashMap,通过内部维护的双向链表,将所有键值对联系起来,有序;TreeMap,所有的键值对之间通过红黑树关联起来,有序。