簡體   English   中英

列表<hashmap> list = new ArrayList<>(); java</hashmap>

[英]List<HashMap> list = new ArrayList<>(); In java

在 java 中,這是錯誤的嗎? 每當我嘗試添加一些東西時,我的舊值就會被新值替換。 是否無法像下面的語句那樣將數據存儲在 hashmap 的列表中? 當我將數據存儲為字符串時 List list = new ArrayList<>(); 像這樣..它工作正常但是當我嘗試用通用語言編寫 hashmap 時它沒有返回舊數據..我需要你的建議。

List<HashMap> dataArrayList = new ArrayList<>();
LinkedHashMap<String, String> hashMap = new LinkedHashMap<>();
for (int j = 0; j < name.length; j++) {
    System.out.print("Enter " + name[j] + ":");
    storedata[j] = scanner.next();
    hashMap.put(name[j], storedata[j]);
}

dataArrayList.add(hashMap);

根據提供的代碼片段,hashMap 中的值只會在您的名稱數組中存在重復項的情況下才會更新。 我不明白你為什么要創建一個 hashmap 的列表,因為你只在列表中添加一個 hashmap。

我想你想說的是如下 name array ={tom, jerry, tom, jerry, duck} storedata array ={d1, d2, d3, d4, d5}

output:{[湯姆,{d1,d3}],[傑瑞,{d2,d4}],[鴨子,{d5}]}

所以如果你想要這樣的東西然后創建一個 HashMap 如下


LinkedHashMap<String,List<String>> hashMap=new LinkedHashMap<>();
for (int j = 0; j < name.length; j++) {
    System.out.print("Enter " + name[j] + ":");
    storedata[j] = scanner.next();
    if(!hashMap.containsKey(name[j])
       hashMap.put(name[j],new ArrayList<>());
    hashMap.put(name[j],storedata[j]);
}
System.out.println(hashMap);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM