将字符串数组中的项目与哈希图的 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
}
所以我有两个字符串数组:
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
}