今天写一个小型项目的时候突然需要创建ArrayList类的数组,尝试了几种自己觉得可以的方法,结果都报错了,记录一下。
错误示范
ArrayList<String> a[] = new ArrayList<String>()[];
ArrayList<Integer>[] b= new ArrayList<Integer>[10];
以上都会报cannot create an array of a generic type,数组元素包括了形参。
语法一
ArrayList<String> a[] = new ArrayList[9];
案例
ArrayList<String> depth[] = new ArrayList[5];
for(int i=1;i<=4;i++)
{
depth[i]=new ArrayList<String>();
}
depth[1].add("hahah");
System.out.println(depth[1].get(0));
通过调试也可以看出,就像正常的引用型变量一样,需要声明数组之后循环创建数组里的对象,对象是ArrayList<String>
语法二
ArrayList<ArrayList<String>> a= new ArrayList<ArrayList<String>>();
通过创建ArryList对象的ArrayList对象,听的很绕口,初次看到也会一脸懵,但是当你需要用到这种语法,就能初步这章语法的初步含意。
案例
ArrayList<ArrayList<String>> a= new ArrayList<ArrayList<String>>();
ArrayList<String> aa=new ArrayList<String>();
aa.add("hello world!");
a.add(aa);
System.out.println(a.get(0).get(0));
//控制台看到输出'hello world!
总结
- 语法一是最常规的方法,是ArrayList的规范用法
- 语法二也要掌握,看一些别人的代码要会用javajava