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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐巍 黑马帝   /  2012-3-24 16:55  /  1729 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通过Arrarys工具类中的asList方法,可以将数组变成List集合。这样将数组变成集合有什么好处?
在下面代码中:
import java.util.*;
class ArraysDemo
{
        public static void main(String[] args)
        {
                String[] arr={"abc","qq","ccccc"};
                List<String> list=Arrays.asList(arr);
                sop("contains:"+list.contains("qq"));
                //list.add("aaa");    //这里数组变成集合后,为什么不能往集合里添加元素?
                sop(list);
                int[] nums={2,4,54};
                List li=Arrays.asList(nums);
                sop(li);//这里打印的是集合的哈希地址值。为什么?
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
}

3 个回复

倒序浏览
将数组变成集合,可以更方便操作。

list.add("aaa");    //这里数组变成集合后,为什么不能往集合里添加元素?
     String 是final的。 所以不能添加。

回复 使用道具 举报
除以上大家说的,这个时候一定要注意到一个问题:堆污染问题
回复 使用道具 举报
数组变成集合目的就是为了利用集合的可扩展性
数组和集合的区别:
(1).数组的长度是固定的,在定义数组的时候,就要确定数组长度大小。而集合类在定义的时候不需要确认集合所能容纳对象的数量,也就是说集合的 大小是动态调整的。在实际应用中我们不能确认的需要存放元素数量的时候,采用集合是比较好的。容量可变是集合相对于数组的最大区别之一。
(2)数组既可以容纳基本数据类型,也可以容纳对象。而集合只能容纳对象,不容纳基本数据类型。另外,需要强调一点的是,无论是数组还是容器,当其容纳对 象的时候,存放的都是对象的引用。而数组在容纳基本数据类型的时候,持有的则是数值。
(3) 如果想在集合中容纳基本数据类型,该怎么做呢?
当我们把一个对象放到集合中,该对象好像“失去”了它的型别特征,以后在使用的时候,除非使用者知道存入对象的类型,否则无法正确使用该对象。所以要像上 面的例子一样,要进行一次强制类型的转化
StudentDemo stu2 = (StudentDemo)coll.get(0);将其转化为原来存储时的对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马