[英]Value of HashMap inside a Hashmap in Java
您可以像这样在哈希图中进行迭代:
private int searchByName(String s) {
for(Map.Entry<Integer, HashMap<String, String>> entry : students.entrySet()) {
HashMap student = entry.getValue(); // Hashmap containing first and lastname
if (student.containsKey(s)) // If name match
return entry.getKey(); // Return the student ID
}
return 0; // Student not found
}
对于姓氏,只需使用containsValue(s)
而不是containsKey(s)
您可以使用Google Collections API Guava专门用于BiMap
bimap(或“双向地图”)是一种保留其值以及其键的唯一性的地图。 此约束使bimap可以支持“反向视图”,这是另一个bimap,它包含与此bimap相同的条目,但具有相反的键和值。
使用此功能,您将可以使用名字和姓氏进行搜索。 此BiMap将成为您的第一个父哈希图的值。
我不确定数据结构是否适合您的用例,但要回答您的问题,您应该尝试使用values()方法,该方法将返回Map的值集合
http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html#values()
Collection res = studensts.values();
Iterator<HashMap<String, String>> i = res.iterator();
Map<String,String> resM = null;
while(i.hasNext()){
resM = i.next();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.