黑马程序员技术交流社区
标题:
关于张老师说的asList的一点小问题
[打印本页]
作者:
一碗小米周
时间:
2013-12-17 14:03
标题:
关于张老师说的asList的一点小问题
本帖最后由 一碗小米周 于 2013-12-18 18:26 编辑
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] str = {"abc","bcd"};
int[] a = {1,2,3};
int[][] b={{1,2,3},{1,2,3}};
System.out.println(Arrays.asList(str));
System.out.println(Arrays.asList(a));
System.out.println(Arrays.asList(b));
}
}
复制代码
[abc, bcd]
[[I@152b6651]
[[I@544a5ab2, [I@5d888759]
复制代码
我想请教下各位,那个二维数b输出结果是那样呢?按照张老师说的,int[][] b 应该是等于Object[] b的呢。那么为什么不能打印出二维数组的内容呢。求大神指导。谢谢。
作者:
夏德宇
时间:
2013-12-18 14:49
API帮助文档中asList:返回一个受指定数组支持的固定大小的列表。二维数组做参数,则返回的是数组为内容列表,打印的话就相当于直接打印多个数组。
作者:
夏德宇
时间:
2013-12-18 15:06
前面搞错了,自己试了一下,明白你的意思了。
asList()方法返回的是受指定数组支持的固定大小的列表,只是数组的另一个视图。
作者:
高丽华
时间:
2013-12-18 15:09
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] str = {"abc","bcd"};
int[] a = {1,2,3};
int[][] b={{1,2,3},{1,2,3}};
System.out.println(Arrays.asList(str));//[abc, bcd]
System.out.println(Arrays.asList(a));//[[I@152b6651]
System.out.println(Arrays.asList(b));//
[[I@544a5ab2, [I@5d888759]
}
}
1,如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。
例如:int [] arr={2,3,4};它变成集合的形式是:List<int[]>list=Arrays.asList(arr);
2,如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。
例如:Integer[]arr={7,6,5};它变成集合的形式是:List<Integer]>list=Arrays.asList(arr);
作者:
夏德宇
时间:
2013-12-18 15:25
二维数组做参数,则返回的是数组为内容的列表,打印的话就相当于直接打印多个数组,所以就会输出对象的表示形式。对列表里的元素再用Arrays.asList任然不能得到二维数组的内容,是因为asList()方法返回的是受指定数组支持的固定大小的列表,只是数组的另一个视图。
作者:
夏德宇
时间:
2013-12-18 15:44
得了一分。谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2