jjzjj

LinkedHashMap

全部标签

java - LinkedHashMap entrySet 的顺序未保存在流中 (Android)

我正在为注册屏幕创建一个非常简单的表单验证实用程序,但我遇到了一些有关LinkedHashMap和从其entrySet创建的流的意外行为>.我将验证结果存储在LinkedHashMap中,语句顺序如下:MapfieldStatuses=newLinkedHashMap();fieldStatuses.put(EMAIL,isValidEmail(emailAddress));fieldStatuses.put(USERNAME,isValidUsername(username));fieldStatuses.put(BIRTHDAY,isValidBirthday(birthday))

java - 如何替换 LinkedHashMap 中特定键的值

我想替换LinkedHashMap中特定键的值。例如初始条件.."key1"->"value1""key2"->"value2""key3"->"value3""key4"->"value4""key5"->"value5"我想要预期的结果..."key1"->"value1""key2"->"value8""key3"->"value3""key4"->"value6""key5"->"value5" 最佳答案 您为该键设置了一个新值:map.put("key2","value8");map.put("key4","value6"

java - 实现并发 LinkedHashMap

我正在尝试为多线程架构创建一个并发的LinkedHashMap。如果我使用Collections#synchronizedMap(),我将不得不使用同步块(synchronizedblock)进行迭代。此实现将导致按顺序添加元素。如果我使用ConcurrentSkipListMap是否有任何方法可以实现Comparator以按顺序存储,如存储在链表或队列中。我想使用java的内置而不是第三方包。编辑:在这个并发的LinkedHashMap中,如果键是名称,我希望将键按到达的顺序排列。即新值将按顺序附加到开始或结束处。在迭代时,LinkedHashMap可以添加新条目,也可以删除。但迭代

java - 为什么 LinkedHashMap 不提供索引访问?

来自Javadoc:Map接口(interface)的哈希表和链表实现,具有可预测的迭代顺序。此实现与HashMap的不同之处在于它维护一个贯穿其所有条目的双向链表。如果是这样,那为什么不像java中的List那样提供对象访问,list.get(索引);更新我使用LinkedHashMap实现了LRU缓存。我的算法要求我从缓存中访问LRU对象。这就是为什么我需要随机访问,但我认为这会使我的性能下降,所以我改变了逻辑,我在缓存已满时访问LRU对象......使用removeEldestEntry()谢谢大家... 最佳答案 a)因为条

java - 什么是 LinkedHashMap<k, v>?

好吧,我是这些HashMap的新手,但对LinkedLists和HashMap有一些了解。如果您能给我一些关于LinkedHashMap的简单解释就太好了,正如标题中那样,这是否意味着我们明确将其定义为某种类型? 最佳答案 ALinkedHashMapisacombinationofhashtableandlinkedlist.Ithasapredictableiterationorder(alalinkedlist),yettheretrievalspeedisthatofaHashMap.Theorderoftheiterati

java - 如何实现与LinkedHashMap类似的ConcurrentHashMap?

我使用了LinkedHashMap,accessOrder为true,并且在任何时候都允许最多500个条目作为数据的LRU缓存。但由于可伸缩性问题,我想转向一些线程安全的替代方案。ConcurrentHashMap在这方面似乎不错,但缺少accessOrder和removeEldestEntry(Map.Entrye)的功能,可在LinkedHashMap。谁能指出一些链接或帮助我简化实现。 最佳答案 我最近用ConcurrentHashMap做了类似的事情,其中CacheEntry包装实际项目并添加缓存逐出统计信息:过期时间、插入

java - 如何获得 LinkedHashMap 的 keyIterator?

通过查看Sun的LinkedHashMaps的源代码,我看到有一个名为KeyIterator的私有(private)类,我想使用它。我怎样才能获得访问权限? 最佳答案 调用即可myMap.keySet().iterator();您甚至不需要知道它的存在;它只是实现的产物。就您所知,他们可能正在使用飞猴来迭代键;只要它们根据规范进行迭代,它们如何做并不重要。顺便说一句,你知道吗HashMap有一个名为KeyIterator的私有(private)类(ConcurrentHashMap、ConcurrentSkipListMap、Enu

java - LinkedHashMap 的 ConcurrentModificationException

当我遍历下面代码中的LinkedHashMap结构时,不确定是什么触发了java.util.ConcurrentModificationException。使用Map.Entry方法效果很好。没有从以前的帖子中得到关于触发此问题的良好解释。如有任何帮助,我们将不胜感激。importjava.util.LinkedHashMap;importjava.util.Map;publicclassLRU{//privateMapm=newHashMap();//privateSortedMaplru_cache=Collections.synchronizedSortedMap(newTree

java - HashMap 或 TreeMap 和 LinkedHashMap 哪个迭代最快?

我有一个Map,它在应用程序启动期间被填满。它在应用程序执行期间不会更改。后来这个map只用来迭代里面的所有元素。我应该选择哪种Map的具体实现?HashMap或TreeMap或LinkedHashMap?更新插入顺序无关紧要。唯一重要的是所有元素的快速迭代(比如6000个元素)。 最佳答案 HashMap通常是最快的,因为它具有最好的缓存行为(HashMap直接遍历后备数组,而TreeMap和LinkedHashMap迭代链接的数据结构)。您可能想要使用ImmutableMap或UnmodifiableMap如果map在初始化后不

java - LinkedHashMap 与 HashMap != LinkedList 与 ArrayList

我读到LinkedHashMap的迭代速度比HashMap快,因为它的元素是相互双向链接的。此外,正因为如此,LinkedHashMap在插入或删除元素时速度较慢。大概是因为这些链接也需要更新。虽然我可以看到LinkedList与ArrayList的类比,因为LinkedList的元素也是双向链接的,但我读到它比ArrayList迭代慢,并且具有更快的插入和删除时间。这是为什么?也许我在某处犯了错误?干杯! 最佳答案 这个比喻不成立。LinkedList和ArrayList是List的两个不相关的实现。然而,LinkedHashMa