所以我有两个String数组:
String[] a = {"Tony", "33", "male", "New York"};
String[] b = {"John", "33", "male", "Chicago"};
然后我有一个HashMaps的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。我想比较字符串a或b中的'name'或索引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相同的值。
答案 0 :(得分:1)
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
}