将字符串数组中的项目与哈希图的 ArrayList 中的项目进行比较

Comparing items in a String Array with items in an ArrayList of Hashmaps

所以我有两个字符串数组:

String[] a = {"Tony", "33", "male", "New York"};
String[] b = {"John", "33", "male", "Chicago"};

然后我有一个 HashMap 的 ArrayList:

ArrayList<HashMap<String, String>> list =
[{"name": "John", "age": "33", "gender": "male", "city": "Chicago"}],
[{"name": "Tony", "Age": "33", "gender": "male", "city": "New York"}];

所以我先从另一个方法得到数组a或b。然后我想比较 'name' 或字符串 a 或 b 中索引 0 处的值与 ArrayList 中的 'name' 值相同,索引 1 处的字符串 a 或 b 值是 '33 ' 与 ArrayList 等中的 'age' 值相同。 我尝试了以下方法:

for(int i = 0; i <= list.size(); i++) {
    assertEquals(b[0], list.get(i).get("name"));
    assertEquals(b[1], list.get(i).get("age"));
    assertEquals(b[3], list.get(i).get("city"));
}

但问题是,它仅适用于其中一个字符串列表,即它仅在我首先获取字符串 b 时才有效,因为在 i = 0 时,ArrayList 具有与字符串 b 相同的值。

String[] a = {"Tony", "33", "male", "New York"};

List<Map<String, String>> listOfMaps = ...;

boolean found = false;
for(final Map<String, String> map : listOfmaps) {
    if(a[0].equals(map.get("name"))
            && a[1].equals(map.get("age"))
            && a[2].equals(map.get("gender"))
            && a[3].equals(map.get("city"))) {
        found = true;
        break;
    }
}

if(!found) {
    // raise the alarm - nothing matched
}