如何获取最后一个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)。
答案 0 :(得分:1)
地图没有最后一个条目,它不属于合同。
HashMap 都不会维护广告订单。
尝试使用SortedMap,NavigableMap,然后访问最后一个条目
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;插入/删除/迭代操作。