簡體   English   中英

如何將 String 對象保存到 ArrayList 並刪除此 ArrayList 中的 HashMap <HashMap<String, String> &gt;?

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

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