gpt4 book ai didi

java - 如何从存储在 Arraylist 中的 Hashmap 中搜索并提取值

转载 作者:行者123 更新时间:2023-12-01 17:55:34 25 4
gpt4 key购买 nike

List<Map<String, String>> personList = new ArrayList<HashMap<String, String>> ();
String tempcnic = SBox.getText().toString();
HashMap<String,String> temp = new HashMap<>();
for (int i = 0; i < personlistcopy.size(); i++) {
temp = personlistcopy.get(i);
if (temp.get(TAG_CNIC) == tempcnic) {
Toast.makeText(History.this, temp.get(TAG_CNIC), Toast.LENGTH_SHORT).show();
personList2.add(temp);
}
temp = null;
}

我有一个包含 HashMapArrayListHashMap 包含 4 个键和对应的值。

  1. 姓名
  2. Cnic
  3. 日期
  4. 时间

请帮助我使用给定的 cnic 搜索并查找 ArrayList 中的所有 HashMap 并将它们添加到新的 ArrayList. 新的 ArrayList 将包含该 cnic 的所有记录。”

最佳答案

以下是如何使用 Java 8 的 stream 来做到这一点:

List<Map<String, String>> personList = new ArrayList<>(); //Your list

List<Map<String,String>> filtered = personList.stream()
.filter(p -> "your_cnic".equals(p.get("cnic")))
.collect(Collectors.toList());

如果您想要不区分大小写的比较,可以使用 equalsIgnoreCase 而不是 equals

这是非流解决方案(适用于 Java 5、6 和 7):

List<HashMap<String, String>> personList = new ArrayList<HashMap<String, String>>(); //Your list
List<HashMap<String,String>> filtered = new ArrayList<HashMap<String,String>>();

for(HashMap<String, String> person : personList){
if("your_cnic".equals(person.get("cnic"))){
filtered.add(person);
}
}

关于java - 如何从存储在 Arraylist 中的 Hashmap 中搜索并提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45169416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com