返回LinkedHashMap的第一个键

时间:2014-02-04 21:37:05

标签: java linked-list hashmap

我在名为Yoghurts的类中有一个LinkedHashMap

Map<Integer, Integer>French = new LinkedHashMap<Integer, Integer>();

然后我创建了访问器方法,以便可以从另一个类

访问该集合

我现在想要输入第一个键,但我不知道该怎么做。

 int location = Yoghurts.getHashMap().entrySet().iterator().next();

然而,这会返回错误不兼容的类型

2 个答案:

答案 0 :(得分:6)

问题是您使用的是entrySet(),其成员的类型为Map.Entry<Integer,Integer>。对迭代器的结果使用getKey(),或使用map.keySet().iterator().next();

答案 1 :(得分:1)

如果为每个方法调用结果分配变量,那么你的错误就更清楚了:

Map<Integer, Integer> map = Yoghurts.getHashMap();
Set<Map.Entry<Integer, Integer>> entrySet = map.entrySet();
Iterator<Map.Entry<Integer, Integer>> iterator = entrySet.iterator();
Map.Entry<Integer, Integer> entry = iterator.next();

剩下要做的是从Map.Entry

中提取密钥
int location = entry.getKey();

请注意,此处还将Integer键解除绑定到int,如果键为空,则可能会抛出异常(我相信LinkedHashMap支持null键)。