Java 如何从Hashmap中获取前四个值

Java 如何从Hashmap中获取前四个值,java,hashmap,Java,Hashmap,下面是用于存储值的HashMap,以及与此值关联的String。据我所知,当您将value和字符串放入哈希映射,它将按值(因为这里的值是整数)升序排序。 现在,我想做的是从rank1到rank4获取值,如果我不知道key的值,我应该怎么做?不,这是不正确的: hashmap,它将按值排序 HashMap不按键排序。如果你想这样,你应该使用树形图。它使用键的自然顺序 如果您使用LinkedHashMap,它将为您保留插入顺序。也许知道这一点会有用 您最好在这里花更少的时间问一些问题,这些问题可以通

下面是用于存储值的
HashMap
,以及与此值关联的
String
。据我所知,当您将value和
字符串
放入
哈希映射
,它将按值(因为这里的值是
整数
)升序排序。
现在,我想做的是从rank1到rank4获取值,如果我不知道key的值,我应该怎么做?不,这是不正确的:

hashmap,它将按值排序

HashMap不按键排序。如果你想这样,你应该使用树形图。它使用键的自然顺序

如果您使用LinkedHashMap,它将为您保留插入顺序。也许知道这一点会有用


您最好在这里花更少的时间问一些问题,这些问题可以通过花更多的时间仔细阅读实现
Map
接口的所有类的javadoc得到更好的回答。也许浏览一下集合教程也会有所帮助。

HashMap
从不排序

TreeMap
,相反,按自然顺序使用
整数进行排序


因此,您可以使用
TreeMap
并对其进行迭代以检索前4个值。

HashMap
不会对任何内容进行排序,它会根据元素的hascode和equals方法将元素插入。如果您需要对元素进行排序,请使用
Treemap

使用
Treemap
,它根据其键的自然顺序进行排序,或通过创建贴图时提供的比较器进行排序


HashMap
不维护顺序


有关更多信息,请参阅

Hashmap不会对您放入Hashmap中的值进行排序。

使用
树映射
默认情况下,哈希映射不会对其值进行排序,您需要树映射,然后KeySet将按升序为您提供键。从那里你可以很容易地得到第一个4你混合了术语“key”(这里没有提到,但我猜它是整数)和“value”,这使得你的问题很难理解。好的,另一个问题是:如果一个带key的值需要添加到TreeMap中,但是TreeMap中存在相同的key,传入值会覆盖现有值吗?另一个问题,如果我使用TreeMap,如何获得前四个值?我只看到firstkey()表示返回值的最小值key@Ivy盖伊,去看看树地图的api。所有答案都在那里。是的,如果您输入的值带有任何地图中已存在的键,则旧值将被覆盖。如果要同时保存这两个对象,则需要一个多重映射或一个具有列表作为值的映射。伙计,你需要多读书多思考。