当前位置: 首页 > 面试题库 >

Java如何在HashMap或HashTable中订购商品?

麹高义
2023-03-14
问题内容

我想知道Java在添加项目时如何在MapHashMapHashtable)中对项目进行排序。密钥是按哈希码,内存引用还是分配优先级排序的?

这是因为我注意到中的相同对Map并不总是以相同的顺序排列


问题答案:

java.util.HashMap无序的
您不能也不应承担任何其他责任。

此类无法保证地图的顺序。特别是,它不能保证顺序会随着时间的推移保持恒定。

java.util.LinkedHashMap
使用插入顺序。

此实现的不同之处HashMap在于,它维护一个遍历其所有条目的双向链接列表。此链表定义了迭代顺序,通常是将键插入映射的顺序(插入顺序)。

java.util.TreeMap,a
SortedMap,使用键的自然顺序或自定义顺序。

映射是根据其键的自然顺序来排序的,或者根据Comparator在映射创建时提供的映射来排序,具体取决于所使用的构造函数。



 类似资料:
  • 问题内容: Java开发受到压力的一个模因总是使用ArrayList而不是Vector。不推荐使用vector。可能是正确的,但是Vector和Hashtable具有同步的优点。 我正在使用面向大量并发的应用程序,使用像Vector一样同步的对象是否有益?看来他们有自己的位置? 问题答案: Vector和Hashtable的问题在于它们仅在本地同步。它们不会在并发应用程序中中断(就像在损坏的数据中

  • 问题内容: 我目前有使用PIVOT生成如下表的查询: 我想做的是,但看起来像是拉伸,结果是值递减。 这是查询: 这样做会产生错误,因此可以指定列吗? 问题答案: 试试这个:

  • 问题内容: 这是我第一次必须订购Java。我需要通过键执行此操作,但是在我的情况下,键是一个对象,因此需要按特定字段进行排序。我自己尝试解决这个问题,我考虑过继续进行以下简单的代码编写: 假设它有效并且我不关心性能,那么在真正使用它之前,我想知道下一小段代码是否会更好,最重要:为什么? 下面的示例来自此处:如何在Java中按键和值对HashMap进行排序 如果两者都不对,该怎么办? 问题答案: 如

  • 本文向大家介绍Java中HashMap和Hashtable之间的区别,包括了Java中HashMap和Hashtable之间的区别的使用技巧和注意事项,需要的朋友参考一下 Hashtable是原始java.util的一部分,是Dictionary的具体实现。但是,Java 2重新设计了Hashtable,使其也实现了Map接口。因此,哈希表现在已集成到集合框架中。它类似于HashMap,但已同步。

  • 问题内容: ava中的aHashMap和a有什么区别Hashtable? 对于非线程应用程序,哪个更有效? 问题答案: 和在Java中有一些区别: 是同步的,而HashMap不是。这HashMap对于非线程应用程序更好,因为非同步对象的性能通常优于同步对象。 不允许null键或值。 HashMap允许一个null键和任意数量的null值。 的子类之一是LinkedHashMap,因此,如果您想要可