如何在下面的代码中使用hashmap

时间:2016-05-07 16:22:59

标签: java hashmap

如何在此代码中使用hashmap.i拥有包含学生ArrayList的名单。我知道hashmap使用键和值对,但如果我在下面使用arraylist的类中使用hashmap,我会混淆我的键和值。

这是我的修改类,我根据用户进行了一些修改

//input that i get in may main class. 

public class modify{
  ArrayList<Roster> rList;

  public modify{
    rList = new ArrayList<Roster>();
  }

  public void addRoster(){
    System.out.println("Enter name for roster: ");
    String name = newObj.nextLine();
    //Teacher t = new Teacher().addTeacher();
    Student s = new Student().addStudent();
    Roster addR = new Roster(s, name, 0);
    rList.add(addR);    
    System.out.println("New Roster Created: ");

  }//end of addRoster

  /*
  code
  */

}//end of class
这是我的名册班。它拥有学生的集会。

public class Roster{

  int id;
  String name;
  List<Student> students;

  public Roster(Student s, String name, int id){

    this.students = new ArrayList<Student>();
    this.students.add(s);
    this.id = ranObj.rand();
    this.name = name;
  }//constructor
}//end of roster

这是我的学生班

public class Student {
  private int studentId;
  public Student(String firstName, String lastName, int age) {
    super( firstName, lastName, age);
    this.studentId = ranObj.rand();
  }

  public String toString(){
    return String.format("Student:\n" +
      " Id = %d\n" +
      " Age = %d\n" +
      " firstName = %s\n" +
      " lastName = %s\n\n" +
      " ",getStudentId(),super.getAge(),     
      super.getFirstName(),super.getLastName());
  }// end of tostring class

}//end of student 

1 个答案:

答案 0 :(得分:0)

这是你的班级名单

 public class Roster{ //attributes of Roster.
             int id; // Assuming this should be unique for each Object.
            String name;  //I don't know for what purpose u have used this.
            List<Student> students; //list of Students

因此,您希望将List<Roaster>存储到HashMap中,如果您知道keysHashMap中应该是唯一声明的,那么只选择使每个单独生成的属性Object班级Roster唯一。

(仅根据我的假设建议)

  

注意: - 在我的观点中,属性id对于您的Roster类来说是唯一的。因此,您应该将id作为密钥来存储大量的对象。

您的HashMap声明应该像那个

Map<Integer, Roster> obj_hMapRoster = new HashMap<Integer, Roster>();
//int for key and Roster for Adding Object of Roster Classs.

在此声明的Map中,您可以将Id设为密钥Integer。您可以轻松存储。为每个不同的名册对象key进行映射。

谢谢