Java中的ArrayList数组
我们经常遇到二维数组,其中大部分都是空的。由于空间是一个巨大的问题,我们尝试不同的方法来减少空间。一种解决方案是使用嵌套的数组,当我们知道数组中每行的长度时,但当我们不知道每行的长度时,就会出现问题。在这种情况下,我们使用ArrayList,因为其长度是未知的。
下面是一个Java程序,演示了上述概念。
// Java代码演示了数组的ArrayList概念
import java.util.*;
public class Arraylist {
public static void main(String[] args)
{
int n = 5;
// 这里al是一个ArrayList数组,有n行。每一行的列数由用户决定。
// al[i].size()将给出第i行的大小
ArrayList<Integer>[] al = new ArrayList[n];
// 初始化
for (int i = 0; i < n; i++) {
al[i] = new ArrayList<Integer>();
}
// 我们可以根据需要向每一行添加任意数量的列
al[0].add(1);
al[0].add(2);
al[1].add(5);
al[2].add(10);
al[2].add(20);
al[2].add(30);
al[3].add(56);
al[4].add(34);
al[4].add(67);
al[4].add(89);
al[4].add(12);
for (int i = 0; i < n; i++) {
for (int j = 0; j < al[i].size(); j++) {
System.out.print(al[i].get(j) + " ");
}
System.out.println();
}
}
}
输出 :
1 2
5
10 20 30
56
34 67 89 12
上面的代码可以正常工作,但会显示以下警告。
prog.java:15: 警告: [unchecked] unchecked conversion
ArrayList[] al = new ArrayList[n];
^
需要: ArrayList[]
找到: ArrayList[]
1 warning
警告主要是因为下面这行代码。
ArrayList<Integer>[] al = new ArrayList[n];```
如何解决上述警告?
我们无法使用ArrayList数组而不出现警告。我们基本上需要使用ArrayList的ArrayList。
极客教程