LinkedHashMap将所有调用委托给其父HashMap。它还支持基于accessOrder值的访问顺序和插入顺序。如果accessOrder:true,则使用访问顺序,否则使用accessOrder:false插入顺序
公共LinkedHashMap(int初始容量、浮点加载因子、布尔访问顺序)
但LinkedHashMap如何在内部支持对象的访问顺序和插入顺序呢?
LinkedHashMap
的OpenJDK 6版本的源代码可在此处获得。基本上,实现保留了所有条目的双链接列表,条目的顺序只是它们在列表中的位置。
LinkedHashMap是哈希表和链表实现的映射接口,具有可预测的迭代顺序。此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链接列表。该链表定义了迭代顺序,通常是将关键点插入地图的顺序(插入顺序)。请注意,如果将键重新插入地图,则插入顺序不受影响。
http://docs.oracle.com/javase/6/docs/api/java/util/LinkedHashMap.html
问题内容: 我从javascript对象内部进行了一些Ajax调用。 在onreadystatechange函数内部,它不再引用主对象,因此我无法访问this.foo。我如何在XMLHttpRequest事件中保留对主对象的引用? 问题答案: 最简单的方法通常是将的值存储在局部变量中: 我也怀疑您的标识符确实是构造函数(您正在分配属性)。 如果是这种情况,请不要忘记添加正确的属性(因为您正在替换整
问题内容: 一个的类上堆和参考变量指向它创建。 如果我写的时候没看错 类的对象在堆上创建并指向它。在堆中,我们有两个单独的对象,其中包含它们自己的实例变量。 但是如果我写 还有两个将在堆上创建,一个用于,另一个用于。但仅提供参考 即可。谁指的是堆外层?如果没有任何引用引用它,那么它应该有资格进行垃圾回收,这将影响的使用。 问题答案: 内部类包含对其外部类实例的隐藏引用。如果没有其他引用,则该隐藏引
问题内容: 我想将一个键,值对添加到哈希表(或任何其他集合)中,但必须保持插入顺序。我怎样才能做到这一点? 就像我将1作为键“ 1”添加为值,将2作为键并将“ 2”添加为值。 输出应为: 问题答案: 以下是一些重要实现的特征差异: :“具有可预测的迭代顺序,通常是将键插入映射 的顺序 ( 插入顺序 )。” :“不保证地图的顺序” :“根据其键的自然顺序或按” 即是一个 因此,在这种情况下,您需要的
包含由管道分隔的数字列表的文件可以有重复项。需要编写map reduce程序,在原始输入顺序中列出不重复的数字。我可以删除重复项,但不保留输入顺序。
问题内容: 我知道有一个可预测的迭代顺序(插入顺序)。是否Set通过返回和返回的也维持这种秩序? 问题答案: Map界面提供了三个 集合视图,这些视图允许将地图的内容视为一组键,值的集合或一组键-值映射。该订单的地图被定义为其中在地图上的集合视图迭代返回元素的顺序。某些地图实现(例如TreeMap 类)会对其顺序做出具体保证;其他人,例如 上课者 -Map 此链表定义了迭代顺序,通常是将键插入映射
问题内容: 我正在创建一个JavaScript对象,如下所示 之后,我将它们如下 上面的方法是否按照对象先前的顺序对它们进行了字符串化处理?字符串化后,它们将按照以前的顺序排列为0,1,2 .... 9吗? 问题答案: 文档中没有任何内容可以明确确认数组项的顺序已保留。但是,文档指出,对于非数组属性,不能保证顺序: 非数组对象的属性不能保证以任何特定顺序进行字符串化。不要依赖于字符串化中同一对象内