我现在有一个
ArrayList<int[]> a = new ArrayList<int[]>();
我想建立一个存放a类型的数组,不知道能不能建,该怎么初始化?ArrayList<int[]>[] zoneArrows = new ArrayList<int[]>[5];这样不行
ArrayList<int[]> a = new ArrayList<int[]>();
我想建立一个存放a类型的数组,不知道能不能建,该怎么初始化?ArrayList<int[]>[] zoneArrows = new ArrayList<int[]>[5];这样不行
ArrayList <int[]> a = new ArrayList <int[]>();不用再做其它动作了.使用的时候,无非不过是一些添加元素和删除元素,直接添加和删除就可以了。相关操作请查API文档。
具体讨论和解决办法可以参考
http://topic.csdn.net/u/20080412/20/72fec10e-2548-41d6-bea6-519c9acde918.html
List<a> lista = new ArrayList<a>();
ArrayList[] zoneArrows = new ArrayList[]{a,a,a,a,a};对于一个数组来说,不用加上泛型限制。
public static void main(String[] args){
ArrayList<int[]> myList=new ArrayList<int[]>();
myList.add(new int[]{2,3,0});
myList.add(new int[]{1,2,3,4});
myList.add(new int[]{2,5,6,1,5});
//myList.add(new char[]{'a'}); //编译通不过。
for(int[] intArr:myList){
System.out.println(Arrays.toString(intArr));
}
}
}
F:\java>java Test4
[2, 3, 0]
[1, 2, 3, 4]
[2, 5, 6, 1, 5]
你创建了一个ArrayList数组,就像MyClass[] my=new MyClass[]一样,正常啊。
但你这样写编译时会有警告信息。
应该:
ArrayList <int[]>[] zoneArrows = new ArrayList<int[]>[]{a,a,a,a};
ArrayList <ArrayList>[] zoneArrows = new ArrayList <ArrayList>[5];
是这样?
public static void main(String[] args) {
List<int[]>[] a = new ArrayList[5];
a[0] = new ArrayList<int[]>();
a[0].add(new int [] {1, 2, 3});
}
}
public class a {
private String str;
private int i;
a(String str, int i) {
this.str = str;
this.i = i;
} public String getStr() {
return str;
} public void setStr(String str) {
this.str = str;
} public int getI() {
return i;
} public void setI(int i) {
this.i = i;
}
}
再在Main方法中調用public static void main(String[] args) {
ArrayList <a> list = new ArrayList <a>();
list.add(new a("1",1));
list.add(new a("2",2));
list.add(new a("3",3));
}
但是java不支持泛型数组滴
类型当然不匹配啊,“数组” = “ArrayList” 牛头不对马嘴啊怎么初始化。假设LZ左边的声明是“正确的”(即反映了LZ的真实用意),那么应该写成:
ArrayList <int[]>[] zoneArrows = new Array[5];我保证上述代码的正确性,LZ可以根据下面的测试代码验证: private static void testArrayOfList() {
ArrayList<int[]>[] zoneArrows = new ArrayList[5];
ArrayList<int[]> a1 = new ArrayList();
a1.add(new int[2]);
a1.add(new int[1]);
ArrayList<int[]> a2 = new ArrayList();
a2.add(new int[20]);
a2.add(new int[10]);
zoneArrows[0] = a1;
zoneArrows[1] = a2; for (int idx = 0; idx < zoneArrows.length; idx++) {
ArrayList<int[]> a = zoneArrows[idx];
if (a == null) continue;
for (int i = 0; i < a.size(); i++) {
int[] arrInt = a.get(i);
System.out.println(arrInt.length);
}
}
}
不过我是想把那些元素分组好进行处理,比如假设我建的那个存放ArrayList<int[]>的数组中存放的是a, b, c三个 ArrayList <int[]>,我有可能要a.clear(), b.clear(),因此全部存在一个a里不太方便