获取Hashtable中的最小值密钥

Min*_*any 6 java hash

我在java中有一个Hashtable,如下所示,我正在尝试获取具有最小值的密钥.显然我可以遍历所有元素来找到它但是有更简单的方法吗?

Hashtable<Object, Integer> hash= new Hashtable<Object, Integer>();
Run Code Online (Sandbox Code Playgroud)

Sea*_*oyd 10

使用Hashtable,没有.但你可以改为使用TreeMap.

基于红黑树的NavigableMap实现.地图根据其键的自然顺序进行排序,或者根据使用的构造函数在地图创建时提供的比较器进行排序.

它有一个方法firstKey(),提供您想要的确切功能.


Grr,价值观,而不是钥匙.不,那么你需要迭代.

我会说在这种情况下你应该使用一个单独的Map(Multimap?)来存储反向关联.

Map<Object, Integer> hash= new Hashtable<Object, Integer>();
SortedSetMultimap<Integer, Object> reverse = TreeMultimap.create();
Run Code Online (Sandbox Code Playgroud)

每当你把key,value事成hash,也放value,key变成reverse.然后使用检索最低值reverse.keySet().first()

(这个解决方案需要番石榴)

  • +0我错过了OP正在寻找最小值而非关键. (3认同)