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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘军亭 高级黑马   /  2013-1-25 19:56  /  1851 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘军亭 于 2013-1-25 20:12 编辑

package cn.liu.javaenhance;

import java.util.Arrays;
/*
* 数组转List
*
* 为什么String[]数组能转化为List后打印出每个元素,而int[]数组打印的却是一个地址值
* */
public class Array2List {

        /**
         * @param args
         */
        public static void main(String[] args) {
               
                int[] a1 = {1,2,3};
                String[] a2 = {"1","2","3"};
               
                System.out.println("a1:"+Arrays.asList(a1));
                System.out.println("a2:"+Arrays.asList(a2));

        }
}

//运行结果
//a1:[[I@1b60280]
//a2:[1, 2, 3]

评分

参与人数 1技术分 +1 收起 理由
黄锦成 + 1

查看全部评分

6 个回复

倒序浏览
asList:将数组变为一个List集合;将数组变成集合,不可以使用集合的增删
方法。因为数组的长度是固定的。

如果数组中的元素都是对象。那么变成集合时,数组中的元素就直接转成集合中的
元素。如果数组中的元素都是基本数据类型,会将该数组作为集合中的元素存在。

评分

参与人数 1技术分 +1 收起 理由
黄锦成 + 1

查看全部评分

回复 使用道具 举报
柴乔军 发表于 2013-1-25 20:01
asList:将数组变为一个List集合;将数组变成集合,不可以使用集合的增删
方法。因为数组的长度是固定的。
...

明白了,谢谢你的提醒。
回复 使用道具 举报
//终于转过弯来了,多谢沙发提醒

import java.util.Arrays;
/*
* 数组转List
*
* */
public class Array2List {

        /**
         * @param args
         */
        public static void main(String[] args) {
               
                int[] a1 = {1,2,3};
                String[] a2 = {"1","2","3"};
               
               
                Object o1 = a1;                         //a1是一个Object对象。
                Object[] o2 = a2;                        //a2是一个Object[]数组
               
                //asList(Object[] obj); java1.4时候的参数是一个Object[]数组。
                //asList(T... a); java1.5时候的参数是一个可变参数。
                //当传入的是int[]数组时候,因为int[]数组是一个Object对象,所以会用1.5的参数,传进去的就是一个对象(数组的地址值)。
                //当传入的是String[]数组的时候,因为String[]数组是一个Object[]数组。1.5为了兼容1.4,所以用的是1.4时候的解决方法。
                //因为String[]数组中存的全是对象,所以转换为List时候可以把数组中的每一个对象存入LIst中
                System.out.println("a1:"+Arrays.asList(a1));
                System.out.println("a2:"+Arrays.asList(a2));

        }
}
回复 使用道具 举报
asList
public static <T> List<T> asList(T... a)
只有泛型才能asList,int不能定义在泛型上要用Integer。
回复 使用道具 举报
唐晓 发表于 2013-1-25 20:09
asList
public static  List asList(T... a)
只有泛型才能asList,int不能定义在泛型上要用Integer。 ...

明白了,明白了呵呵
回复 使用道具 举报
多谢楼上各位帮忙解疑,该继续学习了,拜拜。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马