A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一碗小米周 中级黑马   /  2013-12-17 14:03  /  1096 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 一碗小米周 于 2013-12-18 18:26 编辑
  1. import java.util.Arrays;


  2. public class Test {

  3.         public static void main(String[] args) {
  4.                 String[] str = {"abc","bcd"};
  5.                 int[] a = {1,2,3};
  6.                 int[][] b={{1,2,3},{1,2,3}};
  7.                 System.out.println(Arrays.asList(str));
  8.                 System.out.println(Arrays.asList(a));
  9.                 System.out.println(Arrays.asList(b));
  10.         }

  11. }
复制代码
  1. [abc, bcd]
  2. [[I@152b6651]
  3. [[I@544a5ab2, [I@5d888759]
复制代码
我想请教下各位,那个二维数b输出结果是那样呢?按照张老师说的,int[][] b 应该是等于Object[] b的呢。那么为什么不能打印出二维数组的内容呢。求大神指导。谢谢。


评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

6 个回复

倒序浏览
API帮助文档中asList:返回一个受指定数组支持的固定大小的列表。二维数组做参数,则返回的是数组为内容列表,打印的话就相当于直接打印多个数组。
回复 使用道具 举报
前面搞错了,自己试了一下,明白你的意思了。

asList()方法返回的是受指定数组支持的固定大小的列表,只是数组的另一个视图。

回复 使用道具 举报
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);

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
二维数组做参数,则返回的是数组为内容的列表,打印的话就相当于直接打印多个数组,所以就会输出对象的表示形式。对列表里的元素再用Arrays.asList任然不能得到二维数组的内容,是因为asList()方法返回的是受指定数组支持的固定大小的列表,只是数组的另一个视图。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
得了一分。谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马