У меня есть Map<String, Boolean>
со следующими записями:Получить конкретную запись и его индекс с карты с помощью лямбда-выражения Java
{‘John’:false,
'Mike':false,
'Tom':true,
'Harry':false,
'Bob': false}
Мне нужно найти первую запись и его индекс, который имеет истинное значение. Здесь я должен получить Tom и 3 (скажем, индекс начинается с 1).
я могу перебирать карту и получить эти значения:
int itr=0;
for(Iterator<Map.Entry<String, Boolean>> entries = map.entrySet().iterator; entries.hasNext();) {
itr++;
Map.Entry<String, Boolean> entry = entries.next();
if(entry.getValue()) {
name = entry.getKey();
index = itr;
}
}
Однако я смотрю на лямбда-выражение для того же.
'HashMap' не поддерживает порядок своих элементов! – user1803551
@ user1639485 по индексу вы, вероятно, имеете в виду, сколько записей вы * видели *, прежде чем получили свою ценность? Если это так, это ненадежно, так как при определенном изменении размера карты эта запись может перемещаться. Если ваша карта не сохраняет заказ, например 'LinkedHashMap'. – Eugene
@Eugene Я думаю, что вы не указали неправильный пользователь, и вы в основном сказали, что я сказал. – user1803551