用对象动态填充 ArrayList
Posted
技术标签:
【中文标题】用对象动态填充 ArrayList【英文标题】:Dynamically fill in an ArrayList with objects 【发布时间】:2015-05-17 06:56:10 【问题描述】:我有抽象类 Human,它由其他两个类 Student 和 Worker 扩展。我正在尝试填写两个数组列表。 Student 类型的 ArrayList 和 Worker 类型的 ArrayList 是动态的。
public abstract class Human
private String fName = null;
private String lName = null;
public String getfName()
return fName;
public Human(String fName, String lName)
super();
this.fName = fName;
this.lName = lName;
public void setfName(String fName)
this.fName = fName;
public String getlName()
return lName;
public void setlName(String lName)
this.lName = lName;
public class Student extends Human
private String grade = null;
public Student(String fName, String lName, String grade)
super(fName, lName);
this.grade = grade;
public String getGrade()
return grade;
public void setGrade(String grade)
this.grade = grade;
public class Worker extends Human
private int weekSalary = 0;
private int workHoursPerDay = 0;
public Worker(String fName, String lName, int weekSalary, int workHoursPerDay)
super(fName, lName);
this.weekSalary = weekSalary;
this.workHoursPerDay = workHoursPerDay;
public int getWorkSalary()
return weekSalary;
public void setWorkSalary(int workSalary)
this.weekSalary = workSalary;
public int getWorkHoursPerDay()
return workHoursPerDay;
public void setWorkHoursPerDay(int workHoursPerDay)
this.workHoursPerDay = workHoursPerDay;
public int moneyPerHour()
return weekSalary / (5 * workHoursPerDay);
public class Program
public static void main(String[] args)
ArrayList<Student> student = new ArrayList<>();
ArrayList<Worker> worker = new ArrayList<>();
【问题讨论】:
你的问题在哪里? 动态?用什么数据? 问题是我无法理解如何填写数组列表或只是一个简单的 Worker[] worker 类型的数组。因为当我创建一个实例时,如果 Worker 例如构造函数 ive made must be initialized with its parameters but i do not want to hard code them. I
m 试图做这样的事情,但使用对象。 int arr[] ... 扫描仪输入 = new Scanner(System.in); int n = input.nextInt(); for (i = 0; i 当然,只需添加学生:
ArrayList<Student> students = new ArrayList<>(); // note: students
students.add(new Student("Jens", "Nenov", "A+"));
您可以为工人做几乎完全相同的事情。如果要使用循环,请执行以下操作:
for (int i=0; i<50; i++)
students.add(new Student("Jens"+i, "Nenov", "A+"));
这将创建一个新学生列表,他们的名字后面有不同的数字。但是,如果您想要不同的数据,则该数据需要来自某个地方。例如,您可能会从用户输入中获取数据:
Scanner input = new Scanner(System.in);
for ...
System.out.println("Enter a first name:");
String firstname = input.nextLine();
...
students.add(new Student(firstname, lastname, grade));
【讨论】:
是的,这是一个选项,但如果我想添加 25 名学生,我必须这样做 25 次。这就是为什么我想用循环来动态地做到这一点。但我不知道怎么做:( 太棒了!我很高兴能帮上忙。祝你的程序好运!以上是关于用对象动态填充 ArrayList的主要内容,如果未能解决你的问题,请参考以下文章