如何创建ArrayList数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建ArrayList数组相关的知识,希望对你有一定的参考价值。

参考技术A ArrayList 可以方便的实现列表操作, 但有时候需要建立一个ArrayList数组.首先想到的是类似下面的方法:ArrayList<Integer[] list = new ArrayList<Integer()[N];但会出现错误.改为ArrayList[] list = new ArrayList[N];会有警告.这是因为Java没有范型数组,可以参考以下方法实现类似功能:ArrayList<ArrayList<Integer als = new ArrayList<ArrayList<Integer ();ArrayList<Integer a1 = new ArrayList<Integer();ArrayList<Integer a2 = new ArrayList<Integer();ArrayList<Integer a3 = new ArrayList<Integer();本回答被提问者采纳

如何在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。

以上是关于如何创建ArrayList数组的主要内容,如果未能解决你的问题,请参考以下文章

使用 ArrayList 创建一个动态二维整数数组

如何定义一个arraylist, 包含各种元素

如何检查arraylist中的数组是不是包含某个值?

使用数组而不是 Java 中的 ArrayList 从用户输入创建一个新对象

从数组创建 ArrayList

如何创建起始索引为 1(而不是 0)的 ArrayList