如何将 String 对象保存到 ArrayList 中并删除 ArrayList<HashMap<String, String>> 中的 HashMap?

How to save String object into an ArrayList and also remove the HashMap inside of this ArrayList<HashMap<String, String>>?

我有一个 ArrayList>,我想删除 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)]

您似乎需要一个 Map.Entry 的列表,其中键映射到 status_name。如果你使用的是 Java 8+ 版本,你可以展平 hashmap 并对其应用过滤器。

List<Map.Entry<String, String>> statusNames = statusList.stream()
        .flatMap(hashMap -> hashMap.entrySet().stream())
        .filter(entry -> entry.getKey().equals("status_name"))
        .collect(Collectors.toList());

如果您使用的是 pre-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);
    }
}

请试试这个代码-

          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);
          }