![](/img/trans.png)
[英]How to union correctly Hashmap<String, ArrayList<Object>> and HashMap<String, Object>
[英]How to save String object into an ArrayList and also remove the HashMap inside of this ArrayList<HashMap<String, String>>?
我有一個 ArrayList<HashMap<String, String>>,我想刪除status_id=X
並且只保留status_name=X
並保存到 ArrayList 中。 我該怎么做?
ArrayList<HashMap<String, String>> statusList = [{status_id=1, status_name=iceCream}, {status_id=2, status_name=cake (chocolate)}]
預期結果應打印:
[status_name=iceCream, status_name=cake(chocolate)]
請試試這個代碼-
public static void main(String[] args) {
ArrayList<Map<String, String>> statusList = new ArrayList();
Map<String, String> map1 = new HashMap<>();
map1.put("status_id","1");
map1.put("status_name","ice_cream");
Map<String, String> map2 = new HashMap<>();
map2.put("status_id","2");
map2.put("status_name","cake (chocolate)");
statusList.add(map1);
statusList.add(map2);
System.out.print(statusList);
List<String> list1 = statusList.stream().map(x -> x.get("status_name")).collect(Collectors.toList());
System.out.print(list1);
}
看起來您需要一個Map.Entry
列表,其中鍵映射到status_name
。 如果您使用的是 Java 8+ 版本,則可以展平哈希圖並對其應用過濾器。
List<Map.Entry<String, String>> statusNames = statusList.stream()
.flatMap(hashMap -> hashMap.entrySet().stream())
.filter(entry -> entry.getKey().equals("status_name"))
.collect(Collectors.toList());
如果您使用的是 Java 7 之前的版本。 您需要遍歷元素 HashMap 並將所需的Map.Entry
添加到單獨的列表中。
List<Map.Entry<String, String>> statusNames = new ArrayList();
for (Map<String, String> tempMap : statusList) {
for (Map.Entry<String, String> entrySet : tempMap.entrySet()) {
if(entrySet.getKey().equals("status_name"))
statusNames.add(entrySet);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.