ArrayListにオブジェクト生成し、一つずつ代入するが、
出力処理する際、全て同じ値しか表示されない。
おそらく"参照渡し"をArrayListに代入していることから、最後に代入されたオブジェクトのみの表示しかされない。
Java
1ArrayList<Student> list = new ArrayList<Student>(); 2 //ArrayListにStudentオブジェクト生成・代入する処理 3 for(int i = 1; i <= map2.size(); i++){ 4 Student student = new Student(); 5 //ここで関連するデータの代入 6 student.id = i; 7 student.examScore = map.get(i); 8 student.assignments = map2.get(i); 9 student.miniexams = map3.get(i); 10 finalscore = student.finalScore(); 11 GradeJudge(finalscore,student); 12 Stats(student); 13 14 //ListにStudentオブジェクトを追加 15 list.add(student); 16 } 17 18// ここから出力処理 19for(int i=1;i<list.size();i++){ 20 if(outFlg){ 21 list.get(i).Disp(); //代入したオブジェクトをここで表示 22 }else{ 23 list.get(i).FileDisp(outFileName); 24 } 25 }
出力結果 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可 152,64.0,60.96256684,38.0,1.0,可

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/22 08:30
2018/07/22 08:30
2018/07/22 08:32