如何将 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);
}
我有一个 ArrayListstatus_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);
}