有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

在这段代码中如何使用hashmap。我的名册上有一排学生。我知道hashmap使用键和值对,但是如果我在下面使用arraylist的类中使用hashmap,我不知道我的键和值是什么

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

//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) 个答案

  1. # 1 楼答案

    这是你们班的花名册

     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中,因此,如果您知道keys应该在HashMap中声明为唯一的,那么只选择使类Roster的每个Object唯一的属性

    (仅根据我的假设提出建议)

    Note :- In my perspective attribute id is unique for your Roster Class. So, you should make id as a Key to store a bulk of Object.

    你的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都进行了映射

    多谢各位