[英]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.