【发布时间】:2017-10-11 19:43:41
【问题描述】:
有两个 Map,第一个包含学生 id 和 name。第二个包含学生 ID 和“通过”或“失败”状态。有一个方法,它接受两个 Map 类型的参数并返回 Map。
//1st Map
Map<Integer, String> map1 = new HashMap<>();
map1.put(1, "x");
map1.put(2, "y");
map1.put(3, "z");
map1.put(4, "a");
map1.put(5, "b");`
和
//2nd Map
Map<Integer, String> map2 = new HashMap<>();
map2.put(1, "fail");
map2.put(2, "fail");
map2.put(3, "fail");
map2.put(4, "pass");
map2.put(5, "pass");`
//the method
public Map<Integer, String>findFaildStudent(Map<Integer, String>map1,Map<Integer, String>map2){
returns Map<Integer, String>;
}
所以,我的问题是如何找到不及格学生的记录。我自己也试过,但没有成功。任何帮助表示赞赏。
到目前为止我尝试了什么
public Map<Integer, String>findFaildStudent(Map<Integer, String>map1,Map<Integer, String>map2){
Integer key = null;
String value = null;
Iterator<Entry<Integer, String>> iterator = map1.entrySet().iterator();
while(iterator.hasNext()){
Entry<Integer, String> next = iterator.next();
key = next.getKey();
}
Iterator<Entry<Integer, String>> iterator2 = map2.entrySet().iterator();
while(iterator2.hasNext()){
Entry<Integer, String> next = iterator2.next();
value=next.getValue();
}
Map<Integer,String> hashMap = new HashMap<>();
hashMap.put(key, value);
return hashMap;
}
【问题讨论】:
-
让您的生活变得简单,并使用这些字段创建一个类,然后制作您想要的任意数量的对象,将其存储到某种列表中并查询结果。
-
“我自己尝试过,但没有成功”。那么您尝试了什么?以何种方式“不成功”?
-
@Blorgbeard 我尝试迭代第一个 Map 并获取密钥,然后迭代第二个 Map 并获取值并将其放入新 Map 并从方法返回。
-
那么你能告诉我们这段代码,并解释它有什么问题吗?
-
@Aominè:我不能按照你的建议去做。
标签: java collections hashmap