2

谁能告诉我如何以正确的方式创建一个数组数组列表?!

.\File.java:5: warning: [unchecked] unchecked conversion
        ArrayList<myObjectType> myParkingLotArray[] = new ArrayList[3];
                                                 ^
  required: ArrayList<Vehicle>[]
  found:    ArrayList[]
1 warning

我想要一个存储 3 个数组列表的数组(或任何其他解决方案)。如何将对象添加到 arrylists 也很高兴知道。

父数组

  1. ChildArrayList1
  2. ChildArrayList2
  3. ChildArrayList3

我很高兴有任何帮助

解决方案:

public class myClass {
  ArrayList<myObjectType>[] myArryName= new ArrayList[3];

  public void addLists() {
    myArryName[0] =  new ArrayList<myObjectType>();
    myArryName[1] =  new ArrayList<myObjectType>();
    myArryName[2] =  new ArrayList<myObjectType>();
  }
}

可以忽略或抑制警告。

4

3 回答 3

8

不能创建使用泛型类型的类数组 - 请参见此处

并且没有办法解决该错误消息。编译器告诉你:这不可能!

相反 - 只需坚持一个概念。无论如何,混合数组和列表是没有意义的。去吧

List<List<Vehicle>> parents = new ArrayList<>();

接着

List<Vehicle> someChild = new ArrayList<>();

最后做类似的事情

parents.add(someChild);
于 2016-10-11T14:15:21.477 回答
0

您不能创建参数化类型的数组。

您可以做的事情如下:

List [] arrayOfLists = new ArrayList[10];
arrayOfLists[0] = new ArrayList<Vehicle>();

但是您不能确定所有列表都是相同类型的列表。

否则,您可以通过这种方式简单地使用列表列表:

List<List<Vehicle>> listOfLists = new ArrayList<>();
List<Vehicle> list = new ArrayList<>();
listOfLists.add(list);
于 2016-10-11T14:34:24.180 回答
0

你可以通过演员来做到这一点

ArrayList<myObjectType>[] myParkingLotArray = (ArrayList<myObjectType>[]) new ArrayList[3];

但是,我同意 GhostCat 的观点,您应该尝试使用数组或列表,但不要混合使用它们。一个List<List<myObjectype>>会更好。

于 2016-10-11T14:22:27.393 回答