如何在此代码中使用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
答案 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
中,如果您知道keys
在HashMap
中应该是唯一声明的,那么只选择使每个单独生成的属性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
进行映射。
谢谢