地圖的特定條目和它的索引我有以下條目Map<String, Boolean>
:從獲得使用Java lambda表達式
{‘John’:false,
'Mike':false,
'Tom':true,
'Harry':false,
'Bob': false}
我需要找到的第一個條目和它的索引,其值是true。 在這裏,我應該得到湯姆和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;
}
}
不過,我在看一個相同的lambda表達式。
'HashMap'不維護其元素的順序! – user1803551
@ user1639485通過索引您可能意味着您有多少條目*在獲得價值之前已*見過*如果是這樣,這是不可靠的,因爲當地圖的某個重新大小發生時,該條目可以移動。除非你的地圖保留了順序,比如'LinkedHashMap'。 – Eugene
@Eugene我認爲你ping了一個錯誤的用戶,你基本上說了我說的話。 – user1803551