用对象动态填充 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. Im 试图做这样的事情,但使用对象。 int arr[] ... 扫描仪输入 = new Scanner(System.in); int n = input.nextInt(); for (i = 0; i 你需要接受用户的输入吗? 我想用 Student 和 Worker 类型的对象填写列表。 【参考方案1】:

当然,只需添加学生:

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的主要内容,如果未能解决你的问题,请参考以下文章

在我的屏幕中显示动态填充对象的每个键和值 - React

如何使用 Json 对象填充动态添加的输入字段

为动态填充的对象数组生成猫鼬模式

用部分动态填充分组的 uitableView

在 Android 中动态且顺序地用颜色填充图像视图或位图

用字符串动态填充字符数组