0

我有一个 HashMap,它将 studentIds 作为键,将学生对象作为值,

HashMap<Integer, Student> hashMap = hashTables.buildHash(students);

public static HashMap<Integer, Student> buildHash(Student[] students) {
            HashMap<Integer, Student> hashMap = new HashMap<Integer, Student>();
            for (Student s : students) hashMap.put(s.getId(), s);
            return hashMap;
       }

下面的代码获取每个 KeyValue 对,并且 s.getValue() 返回一个由 id 和字符串名称组成的学生对象,我如何检索/打印这些值(student.int、student.name);

for(Map.Entry s : hashMap.entrySet())
    System.out.print(s.getKey()+" "+s.getValue());
4

3 回答 3

3

您只需为条目使用参数化类型:

for(Map.Entry<Integer, Student> s : hashMap.entrySet())
    System.out.print(s.getKey()+" "+s.getValue().getId()+" "+s.getValue().getName());

(请注意,一个类不可能有一个名为“int”的字段,因为这是一个语言关键字)。

于 2012-05-06T11:05:53.663 回答
3

只需toString在 Student 中实现,您发布的代码将按原样工作:

public class Student {
    ...
    public String toString() {
      return "ID = " + this.id + ", name = " + this.name;
    }
}
于 2012-05-06T11:06:05.680 回答
1

你可以通过..

for(Map.Entry<Integer, Student> s : hashMap.entrySet()){
    System.out.print(Long.valueof(s.getKey())+""+String.valueof(s.getValue().getName()));
}
于 2012-05-06T11:58:49.590 回答