2016-05-07 4 views
-4

このコードでhashmapを使用するにはどうすればいいですか?学生のArrayListを保持するロスタがあります。私はハッシュマップのキーと値のペアを使用することを知っているが、私は私のキーと値が混乱している場合、私はarraylistを使用する次のクラスでhashmapを使用します。私はこれが私の名簿クラスであるユーザー次のコードで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 

に基づいていくつかのmodificatonを作るところ

これは私の修正クラスです。それは学生の支配者を保持します。

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 

は、これはあなたがkeysは一意でなければならないことがわかっている場合ので、あなたは、そうHashMapList<Roaster>を格納したい、これはあなたのクラス名簿

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 

である私の学生のクラス

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

別の努力していない質問 – Stewart

+0

あなたは、学生をRosterの中に保管し、その実装を決して公開しないために使用するコレクションを隠しておくべきです。これを行うと、リストを交換してMapを使用するのは簡単です。独自のキー(学生ID、名前など)をマップキーとして使用することは意味があります。 – duffymo

答えて

0

です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. 

ようにする必要があり

あなたはIntegerでそのIDをキーとして置くことができMap宣言しました。あなたは簡単に保管することができます。各異なる目的のオブジェクトのためにkeyがマップされます。

ありがとうございました

関連する問題