获取最后一个Hashmap密钥的值

时间:2015-10-23 10:49:17

标签: java hashmap

如何获取最后一个HashMap键的值?

Map<Integer, Employee> map = new HashMap<Integer, Employee>();
map.put(1, "FIRST INSERTED");
map.put(2, "SECOND INSERTED");
map.put(3,"THIRD INSERTED");

我想要做的是获取最后一个键的值(3),增加它并添加另一行和下一个数字(4)。

3 个答案:

答案 0 :(得分:1)

地图没有最后一个条目,它不属于合同。

HashMap 都不会维护广告订单。

尝试使用SortedMapNavigableMap,然后访问最后一个条目

    NavigableMap<String,Integer> map = new TreeMap<String, Integer>();
    map.lastEntry().getKey()

还有LinkedHashMap维护插入密钥的顺序。但是没有用于备份此功能的界面,也没有直接访问最后一个密钥的方法。

PS:阅读this

答案 1 :(得分:0)

#include<iostream> using namespace std; int n; float maxx, minn, a; int main() { cin >> n; for (int j = 0; j < n; j++) { float T[5]; for (int i = 0; i < 5; i++) { cin >> T[i]; } if (T[0] > T[1]) { maxx = T[0]; minn = T[1]; } else { maxx = T[1]; minn = T[0]; } for (int i = 0; i < 5; i += 2) { if (T[i + 2] > T[i + 3]) { if (T[i + 2] > maxx) { maxx = T[i + 2]; if (T[i + 3] < minn) { minn = T[i + 3]; } } } else { if (T[i + 3] > maxx) { maxx = T[i + 3]; if (T[i + 2] < minn) minn = T[i + 2]; } } } a = (T[0] + T[1] + T[2] + T[3] + T[4]) / 5.0; cout << maxx << endl; cout << minn << endl; cout << a << endl; } return 0; } 不保证任何订单。如果通过&#34;最后一个键&#34;你的意思是&#34; max key&#34;,你应该找到HashMap返回的Set<Integer>的最大值。

或者使用其他类型的map.keySet()(例如Map),如其他答案所示。

答案 2 :(得分:0)

你不能使用普通的HashMap,你需要&#34;集合中的另一个成员&#34;家庭;在这种情况下,它的堂兄 LinkedHashMap 。那个保持添加元素的顺序。请记住,这两个不同的地图确实显示了关于&#34;成本&#34;插入/删除/迭代操作。