如何在java中的每个arraylist中创建具有不同类型对象的arraylist数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在java中的每个arraylist中创建具有不同类型对象的arraylist数组?相关的知识,希望对你有一定的参考价值。

我想创建一个ArrayList对象数组。

让我们假设数组大小为3,因此它包含3个列表。在ArrayList的每个索引处存储在ArrayList中的数据类型是不同的,例如:索引0处的ArrayList包含Class“student”的对象,索引1处的ArrayList包含Class“Professor”的对象,索引2处的ArrayList包含Class“的对象家长”。

如何创建它?

答案

实际上,在safelly中你可以考虑ArrayList的对象。详细创建像这样的类;

Person.class

public class Person{
    //common fields of person
}

Student.class

public class Student extends Person{
  //fields of Student
}

Professor.class

public class Professor extends Person{
  //fields of Professor
}

Parent.class

public class Parent extends Person{
  //fields of Parent
}

现在你可以从泛型类创建这样的ArrayList数组。这个实现是;

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

//studentList is keeps instance of Person as student
ArrayList<Person> students = new ArrayList<>();
students.add(new Student());
personList.add(students);

//professorsList is keeps instance of Person as professor
ArrayList<Person> professors = new ArrayList<>();
students.add(new Professor());
personList.add(professors);

//parentList is keeps instance of Person as parents
ArrayList<Person> parents = new ArrayList<>();
students.add(new Parent());
personList.add(parents);

更多阅读:ArrayList

另一答案

你可以使用not parametrized ArrayList

List<List> genericList = new ArrayList<List>();
genericList.add(*new ArrayList()*);

但不建议这样做,因为您将丢失有关每个列表类型的信息。 (你必须自己施展)

另一答案

这看起来像这样:

import java.util.ArrayList; 
public class HelloWorld{

     public static void main(String []args){
         ArrayList<ArrayList> arrs = new ArrayList<ArrayList>();
         arrs.add(new ArrayList<String>());
         arrs.add(new ArrayList<Integer>());
         arrs.add(new ArrayList<Double>());
         ((ArrayList<String>)arrs.get(0)).add("Hello World!");
        System.out.println(arrs.get(0).get(0));
     }
}

这不是完全安全的,因为您必须使用您在父ArrayList的每次检索中期望的泛型类型来转换ArrayList。

以上是关于如何在java中的每个arraylist中创建具有不同类型对象的arraylist数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Java中创建ArrayList列表?

如何在Java中创建数组列表

如何在 Java 中创建锯齿状二维数组?

如何在 Flutter 中创建具有固定列的水平滚动表格?

在 Python 中创建具有初始容量的列表

未在 Firebase 中创建字符串的 Arraylist