我使用以下
LinkedHashMap
并将数字的出现次数表示为 <number, occurences>
。Map<Integer, Integer> map = new LinkedHashMap<>();
地图中存储的值如下所示:
key | value
4 | 2
10 | 2
5 | 1
3 | 1
我想获取第一个值为1的键(在示例中,它是5)。如果没有一个值为1的键,则返回-1。我使用以下方法,但我认为这不是一个适当的方法,可能有更好或更短的方法来实现这个目标:
int key = map.containsValue(1) ?
map.entrySet().stream()
.filter(entry -> entry.getValue() == 1)
.map(Map.Entry::getKey).findFirst().get() : -1;
那么,有更好的方法来实现这个吗?
map.containsValue()
。 - havryliuk