jjzjj

LinkedHashMap

全部标签

java - LinkedHashMap 的内部实现与 HashMap 实现有何不同?

我读到HashMap有以下实现:mainarray↓[Entry]→Entry→Entry←linked-listimplementation[Entry][Entry]→Entry[Entry][null]所以,它有一个Entry对象数组。问题:我想知道这个数组的索引如何在hashCode相同但对象不同的情况下存储多个Entry对象。这与LinkedHashMap实现有何不同?它是map的双向链表实现,但它是否像上面一样维护一个数组,它如何存储指向下一个和上一个元素的指针? 最佳答案 HashMap不维护插入顺序,因此它不维护任何

java - Jackson JSON + Java 泛型获取 LinkedHashMap

我有一个问题类似于stackoverflow上的一些问题,但没有一个真正回答我的问题。我使用Jackson的ObjectMapper并希望将此JSON字符串解析为用户对象列表:[{"user":"Tom","role":"READER"},{"user":"Agnes","role":"MEMBER"}]我这样定义一个内部类:publicclassUserRole{privateStringuserprivateStringrole;publicvoidsetUser(Stringuser){this.user=user;}publicvoidsetRole(Stringrole){t

java - Jackson JSON + Java 泛型获取 LinkedHashMap

我有一个问题类似于stackoverflow上的一些问题,但没有一个真正回答我的问题。我使用Jackson的ObjectMapper并希望将此JSON字符串解析为用户对象列表:[{"user":"Tom","role":"READER"},{"user":"Agnes","role":"MEMBER"}]我这样定义一个内部类:publicclassUserRole{privateStringuserprivateStringrole;publicvoidsetUser(Stringuser){this.user=user;}publicvoidsetRole(Stringrole){t

java - 如何在达到限制时通过删除最旧的条目来限制 map 的最大大小

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visitthehelpcenter.关闭10年前。我想要一个具有最大尺寸的Map实现。我想将其用作缓存,因此一旦达到限制,就会删除最旧的条目。我也不想引入对任何3rd方库的依赖。 最佳答案 您可以使用LinkedHashMap像这样您可以通过LRU或FIFO移除。publicstaticMapcreateLRUMap(finalintmaxEntries){returnnewL

java - 如何在达到限制时通过删除最旧的条目来限制 map 的最大大小

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visitthehelpcenter.关闭10年前。我想要一个具有最大尺寸的Map实现。我想将其用作缓存,因此一旦达到限制,就会删除最旧的条目。我也不想引入对任何3rd方库的依赖。 最佳答案 您可以使用LinkedHashMap像这样您可以通过LRU或FIFO移除。publicstaticMapcreateLRUMap(finalintmaxEntries){returnnewL

java - 以相反的顺序遍历 LinkedHashMap

我有一个LinkedHashMap:LinkedHashMap我需要从给定键的位置向后迭代。因此,如果给我第10个项目的键,我需要向后遍历HashMap9、8、7等。 最佳答案 这个问题需要一个反向顺序的LinkedHashMap,一些答案建议使用TreeSet但这会根据键重新排序map。这个解决方案允许迭代原始的LinkedHashMap而不是新的ArrayList,正如已经提出的那样:ListreverseOrderedKeys=newArrayList(linkedHashMap.keySet());Collections.r

java - 以相反的顺序遍历 LinkedHashMap

我有一个LinkedHashMap:LinkedHashMap我需要从给定键的位置向后迭代。因此,如果给我第10个项目的键,我需要向后遍历HashMap9、8、7等。 最佳答案 这个问题需要一个反向顺序的LinkedHashMap,一些答案建议使用TreeSet但这会根据键重新排序map。这个解决方案允许迭代原始的LinkedHashMap而不是新的ArrayList,正如已经提出的那样:ListreverseOrderedKeys=newArrayList(linkedHashMap.keySet());Collections.r

java - 如何使用其键获取 LinkedHashMap 中键/值的位置

我有一个包含名称/年龄(字符串/整数)对的LinkedHashMap(称为info)。如果我输入键,如何获得键/值的位置?例如,如果我的LinkedHashMap看起来像这样{bob=12,jeremy=42,carly=21}而我要搜索jeremy,它应该返回1作为它的位置1。我希望我可以使用类似info.getIndex("jeremy")的东西。 最佳答案 HashMapIteration的实现通常是未排序的.LinkedHashMap可预测为Iteration订购(插入顺序)但不公开List接口(interface)和Lin

java - 如何使用其键获取 LinkedHashMap 中键/值的位置

我有一个包含名称/年龄(字符串/整数)对的LinkedHashMap(称为info)。如果我输入键,如何获得键/值的位置?例如,如果我的LinkedHashMap看起来像这样{bob=12,jeremy=42,carly=21}而我要搜索jeremy,它应该返回1作为它的位置1。我希望我可以使用类似info.getIndex("jeremy")的东西。 最佳答案 HashMapIteration的实现通常是未排序的.LinkedHashMap可预测为Iteration订购(插入顺序)但不公开List接口(interface)和Lin

java - LinkedHashMap 的实现与 HashMap 有何不同?

如果LinkedHashMap的时间复杂度和HashMap的复杂度一样,为什么我们需要HashMap?与Java中的HashMap相比,LinkedHashMap的额外开销是多少? 最佳答案 LinkedHashMap会占用更多内存。普通HashMap中的每个条目都只有键和值。每个LinkedHashMap条目都有那些引用和对下一个和前一个条目的引用。还有一点点家务要做,尽管这通常无关紧要。 关于java-LinkedHashMap的实现与HashMap有何不同?,我们在StackOve