但是第二种:由于数组a变成了List集合中的一个元素,那么在用迭代器的时候,it.next()方法的返回值
应该是一个数组,那么再把数组遍历不就能取出里面的所有元素吗?为什么这样不行
解答:asList()集合返回的是返回一个受指定数组支持的固定大小的列表,为API解释
Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.) This method acts as bridge between array-based and collection-based APIs, in combination with Collection.toArray. The returned list is serializable and implements RandomAccess.
public class Demo34
{
public static void main(String[] args)
{
int[] a={2,3,4};
int[] b={5,6,7};
List l=Arrays.asList(a);
Iterator it=l.iterator();
while(it.hasNext())
{
int[] arr=(int[]) it.next(); //在这里进行强制类型的转换,因为asList()返回的是一维数组,所以进行强制类型的转换
for(int x=0;x<arr.length;x++)
{
System.out.println(arr[x]);//这里是arr[x],不是x
}
}
}
}
public class Demo34
{
public static void main(String[] args)
{
int[] a = new int[]{2,3,4};
Object obj1 = a;
//Object[] obj2 =a; 这种写法就错误的
int[] b={5,6,7};
System.out.println((Arrays.asList(a)));
List l = Arrays.asList(a);
//提示错误:The method asList(Object[]) in the type Arrays is not applicable for the arguments (int[])
Iterator it=l.iterator();
while(it.hasNext())
{
int[] arr= (int[]) it.next(); //在这里进行强制类型的转换
for(int x=0;x<arr.length;x++)
{
System.out.println(arr[x]);
}
}
}
}
但是老师的好像可以,在黑马加强24里有,我也有点雾水了