[英]How to get a key from LinkedHashMap
如何從 LinkedHashMap 獲取密鑰?
例如,我有包含鍵名和用戶名的LinkedHashMap
,我需要在掃描儀的幫助下輸入名稱,然后我想查看該元素具有什么鍵,我輸入的元素:
static LinkedHashMap<Integer, String> names = new LinkedHashMap<>();
static Scanner sc = new Scanner(System.in);
static int i = 1;
stasic String name;
public static void main(String[] args) {
int b = 0;
while (b == 0) {
System.out.println("Input your name: ");
name = sc.nextLine;
names.put(i, name);
i += 1;
outName();
}
}
public static void outName() {
System.out.println("Input name: ");
name = sc.nextLine();
if (names.containsValue(name)) {
//I do not know what should I do here?
}
}
for (Map.Entry<String, ArrayList<String>> entry : names.entrySet()) {
String key = entry.getKey();
ArrayList<String> value = entry.getValue();
}
使用 Map.Entry 進行迭代
如果你想按照它們在 Set 中的順序收集密鑰,那么它是這樣的:
map.entrySet().stream().map(Map.Entry::getKey).collect(Collectors.toCollection(LinkedHashSet::new));
這里 LinkedHashSet 維護了 LinkedHashMap 的插入順序。 如果您使用 HashSet,它可能會更改鍵的順序。 為了確保使用 LinkedHashSet。
同樣的事情也適用於 ArrayList 的情況。 ArrayList 維護插入順序,因此無需擔心順序。
map.entrySet().stream().map(Map.Entry::getKey).collect(Collectors.toCollection(ArrayList::new));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.