从 LinkedHashMap 对象返回键和值的顺序是否得到保证?
我知道 LinkedHashMap
有一个可预测的迭代顺序(插入顺序).LinkedHashMap.keySet()
返回的Set
和LinkedHashMap.values()
返回的Collection
是否也维护这个顺序?
I know LinkedHashMap
has a predictable iteration order (insertion order). Does the Set
returned by LinkedHashMap.keySet()
and the Collection
returned by LinkedHashMap.values()
also maintain this order?
推荐答案
Map 接口提供了三个集合视图,允许将地图的内容视为一个集合键、值的集合或集合键值映射.顺序地图被定义为其中的顺序地图集合上的迭代器视图返回它们的元素.一些地图实现,例如
TreeMap
类,作出具体保证他们的订单;其他人,比如HashMap
类,不要.
The Map interface provides three collection views, which allow a map's contents to be viewed as a set of keys, collection of values, or set of key-value mappings. The order of a map is defined as the order in which the iterators on the map's collection views return their elements. Some map implementations, like the
TreeMap
class, make specific guarantees as to their order; others, like theHashMap
class, do not.
-- 地图
这个链表定义了迭代排序,通常是顺序其中钥匙被插入地图(插入顺序).
This linked list defines the iteration ordering, which is normally the order in which keys were inserted into the map (insertion-order).
-- LinkedHashMap
所以,是的,keySet()
、values()
和 entrySet()
(提到的三个集合视图)在内部链表使用的顺序.是的,Map
和 LinkedHashMap
的 JavaDoc 保证了这一点.
So, yes, keySet()
, values()
, and entrySet()
(the three collection views mentioned) return values in the order the internal linked list uses. And yes, the JavaDoc for Map
and LinkedHashMap
guarantee it.
毕竟这就是这门课的意义所在.
That is the point of this class, after all.
相关文章