簡體   English   中英

將列表添加到 ArrayList

[英]Add List to ArrayList

我正在嘗試將列表“studentList”和“handerwerkerList”添加到新的 ArrayList plist。 所以我希望我的對象都在一個列表中。 其他列表的參數比人員對象多。 但我想轉換其他列表,以便它們適合新列表。

    static List <Person> personList = new ArrayList <Person>();
    static List <Student> studentList = new ArrayList <Student>();
    static List <Handwerker> handwerkerList = new ArrayList <Handwerker>();

    public static void main (String[] args) {

        PrintWriter out = new PrintWriter(System.out);

        testDifferentTypes(out);
        testRechnungen(out);
        out.flush();
    }
    public static void testDifferentTypes(PrintWriter out) {

        personList.add(new Person("Anton", "Kripp", 2001));
        studentList.add(new Student("Sarah", "Hirschfelder", 1993, "Wirschaftinformatik", 123456));
        studentList.add(new Student("Patrick", "Huf", 1990, "Informatik", 654321));
        studentList.add(new Student("AJ", "Kurpieweit", 1995, "Psychologie", 250702));
        handwerkerList.add(new Handwerker("Niko", "Budic", 2005, "Rohrleger", 9.82));

        ArrayList<Person> plist = new ArrayList <Person>();

        for(Person person  : personList) {
            plist.add(person);
        }

        for(Person person : studentList) {
            plist.add(person);
        }

        for (Person person : handwerkerList) {
            plist.add(person);
        }
    }

public class Student extends Person{

    protected String studienfach;
    protected int matrikelNr;

    public Student(String Vorname, String Nachname, int geburtsjahr, String studienfach, int matrikelNr) {
        super(Vorname, Nachname, geburtsjahr);
        this.studienfach = studienfach;
        this.matrikelNr = matrikelNr;
    }

    public Student(Person person, String studienfach, int matrikelNr) {
        this(person.Vorname, person.Nachname, person.geburtsjahr,studienfach, matrikelNr);
    }

public class Handwerker extends Person{

    protected String gewerk;
    protected Double stundenlohn;

    public Handwerker(String Vorname, String Nachname, int geburtsjahr, String gewerk, Double stundenlohn) {
        super(Vorname, Nachname, geburtsjahr);
        this.gewerk = gewerk;
        this.stundenlohn = stundenlohn;

    }
    public Handwerker(Person person, String gewerk, Double stundenlohn) {
        this(person.Vorname, person.Nachname, person.geburtsjahr, gewerk, stundenlohn);
    }

我建議您花一些時間閱讀inheritance 的工作原理

您的問題的答案是,如果 Student 和 Handweker 已經擴展了 Person,那么您可以直接將它們添加到任何ArrayList<Person>中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM