从列表中删除重复的键Map.Entry

时间:2014-11-27 11:56:46

标签: java arraylist map

我有一个List Map.Entry,在roder中有一个对列表。

在我的List中,我将插入对,其中键是表示UNIX纪元的Long值,值为带有一些文本的String

ArrayList<Map.Entry<Long, String>> events = new ArrayList<Map.Entry<Long, String>>();
events.add(new Map.Entry<Long, String>(140000000, "Test event"));

我想删除带有重复键的Map.Entry,因此每个UNIX纪元只有一个关联的String。没有手动迭代整个列表的任何奇特的方式吗?

如果String值是来自同一个键的所有String值的连续值,则获得奖励。

1 个答案:

答案 0 :(得分:2)

使用hashMap - 它只允许每个键一个条目,因此将覆盖。然后,您可以使用map.entrySet将MapEntries从Map中移出。如果键相同但值不同,则此方法有效。

如果键和值对相同,只是将条目放入Set中就可以了,即它们是相同的条目,而不是只有相同的键。查看MapEntry.equals()的行为以理解这一点。