import java.util.*;
public class tr {
public static void main(String[]args){
ArrayList[] arr=new ArrayList[2];
arr[0]=new ArrayList<byte[]>();
arr[1]=new ArrayList<byte[]>();
arr[0].add(Arrays.asList(1,2,3));
arr[0].add(Arrays.asList(4,5));
arr[0].add(Arrays.asList(1));
arr[1].add(Arrays.asList(1,2,3));
arr[1].add(Arrays.asList(4,5));
arr[1].add(Arrays.asList(1,2,3,4,5));
byte[] b;
System.out.println();
}
}
我现在想得到arr[0]中第二个整形数组{4,5}的每一个值,怎么才能得到?高手指点一下
public class tr {
public static void main(String[]args){
ArrayList[] arr=new ArrayList[2];
arr[0]=new ArrayList<byte[]>();
arr[1]=new ArrayList<byte[]>();
arr[0].add(Arrays.asList(1,2,3));
arr[0].add(Arrays.asList(4,5));
arr[0].add(Arrays.asList(1));
arr[1].add(Arrays.asList(1,2,3));
arr[1].add(Arrays.asList(4,5));
arr[1].add(Arrays.asList(1,2,3,4,5));
byte[] b;
System.out.println();
}
}
我现在想得到arr[0]中第二个整形数组{4,5}的每一个值,怎么才能得到?高手指点一下
n1=a[0];
n2=a[1];
System.out.println(b[0]+" "+b[1]);
出现错误:Type mismatch: cannot convert from Object to byte[]
报错的话,用强制类型转换。
List list = (List) arr[0].get(1);
System.out.println(list.get(0)+" "+list.get(1));
public void fangFa(int a){
System.out.println("zy0401.a=");
}
public static void main(String[]args){
ArrayList<byte[]>[] arr=new ArrayList[2];
arr[0]=new ArrayList <byte[]>();
arr[1]=new ArrayList <byte[]>();
arr[0].add(new byte[]{1,2,3});
arr[0].add(new byte[]{4,5});
arr[0].add(new byte[]{6,7,7});
byte[] c=arr[0].get(1);
System.out.println(c[1]); }
}测试结果:5
LZ Arrays.asList(1,2,3);返回的是List不是数组
在这个数组中添加元素,即 arr[0]=new ArrayList <byte[]>();
然后在这个元素里面add数据,由于泛型参数限定只能添加Byte[],即
arr[0].add(new byte[]{1,2,3});
去元素的时候 byte[] c=arr[0].get(1);
返回一个byte数组,然后再取数组中的元素就得到数据了
ArrayList<byte[]> arr = new ArrayList<byte[]>[2];原来那种用法的话,编译器就不会自动检查类型而是将 arr[0] 和 arr[1] 作为 ArrayList<Object> 处理。所以arr[0].get(1) 返回一个 Object。但是我们知道它是 List,所以可以强制转换后再使用:
((List) arr[0].get(1)).get(i)
byte[] b=(byte[])arr[0].get(0);
System.out.println(b[0]);
这样虽然没有错,但是不能运行!!!
System.out.println(b[0]);