初始化ArrayList数组

use*_*857 13 java arrays string initialization arraylist

我怎么能初始化ArrayArrayList<String>

我尝试了这种语法,但它不起作用:

ArrayList<String>[] subsection = new ArrayList<String>[4];
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 11

该语法适用于非泛型ArrayList.(ideone)

但它不适用于通用ArrayList<E>:( ideone)

这段代码:

ArrayList<String>[] subsection = new ArrayList<String>[4];
Run Code Online (Sandbox Code Playgroud)

给出编译器错误:

Main.java:8: generic array creation
        ArrayList<String>[] subsection = new ArrayList<String>[4];

对于通用版本,请使用ArrayList<ArrayList<E>>:

ArrayList<ArrayList<String>> subsection = new ArrayList<ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)


UVM*_*UVM 9

你可以像这样定义:

ArrayList<String>[] lists = (ArrayList<String>[])new ArrayList[10];
    lists[0] = new ArrayList<String>();
    lists[0].add("Hello");
    lists[0].add("World");
    String str1 = lists[0].get(0);
    String str2 = lists[0].get(1);
    System.out.println(str1 + " " + str2);
Run Code Online (Sandbox Code Playgroud)


Dan*_*SFT 5

好的,评论后,我想好了...你的权利为什么不.

弄清楚了.

ArrayList[] test = new ArrayList[4];

test[3] = new ArrayList<String>();
test[3].add("HI");

System.out.println(test[3].get(0));
Run Code Online (Sandbox Code Playgroud)

虽然我会说实话,但我不确定为什么会这样.

将第一个测试项目指定为新集合后,它将仅允许阵列中的所有其他项目成为该类型.所以你做不到

test[3] = new ArrayList<String>();
test[2] = new HashSet<String>();
Run Code Online (Sandbox Code Playgroud)