※ ChatGPTを利用し、要約された質問です(原文:arraylistについて)
ArrayListについて-ArrayListの勉強中
arraylistの勉強をしています。
ここの掲示板他、いろいろなものを見たのですが、
解決できませんでした。
お時間ある方、是非教えてください。
ArrayListにPerson(自分で作ったクラス)を入れていきます。
そうすると、出力したときに、最後に入力したものしか、出力されません。
例えば、
何人分入力しますか?2
名前を入力してください:mori
moriさんですね
国語の点数は?:2
数学の点数は?:2
英語の点数は?:2
名前を入力してください:sita
itaさんですね
国語の点数は?:4
数学の点数は?:5
英語の点数は?:6
国語の平均は3点です。
数学の平均は3点です。
英語の平均は4点です。
sitaさんの平均点は5点です。
sitaさんの平均点は5点です。
という感じに最後に入力したものが人数分出力されます。
ロジックは下記のようになっています。
(全然意味のわからないものでしたらご指摘ください)
☆Syuukei.java☆
~省略~
persondata.add(person);
}
System.out.println("国語の平均は" + (persondata..getKototal() / nin) + "点です。");
~省略~
Iterator ite = persondata.iterator();
while(ite.hasNext()){
Person per = (Person)ite.next();
System.out.println(per.getName() + "さんの平均点は" + (per.getSubtotal() / 3) + "点です。");
☆PersonData.java☆
import java.util.*;
public class PersonData extends ArrayList{
~省略~
public boolean add(Person person){
super.add(person);
kototal += person.getKo();
sutotal += person.getSu();
eitotal += person.getEi();
return true;
}
public int getKototal(){
return kototal;
}
~省略~
}
Person.javaは、gettersetterです。
よろしくお願いします。
お礼
SpiralGalaxyさんありがとうございます。 ぴったりでました。 私の勉強不足ですね(>_<) ほんとうにありがとうございました!
補足
同じpersonを使いまわすと、 箱は一つだから、実際はその箱をみてるだけだから 、すべて最後に入力したものが出力される。 という考え方でよいでしょうか?