黑马程序员技术交流社区

标题: 集合能不能定义就初始化? [打印本页]

作者: 吴通    时间: 2012-8-31 21:02
标题: 集合能不能定义就初始化?

import java.util.*;
class ListDemo
{
public static void main(String[] args)
{
  ArrayList<String> al=new ArrayList<String>();
  al.add("abc1");
  al.add("abc2");
  al.add("abc3");
  sop(al);
}
public static void sop(Object obj)
{
  System.out.println(obj);
}
}

/*
int[] arr={2,3,4}数组定义的时候就能初始化,
虽然集合的长度不固定,但是打印的时候集合也是显示的有效的长度[abc1,abc2,abc3]
List集合能不能在定义的时候就初始化呢?
从而省去了al.add("abc1");
    al.add("abc2");
    al.add("abc3");
    这样的操作?
*/

作者: 周兴华    时间: 2012-8-31 21:12
假设已经有了一个ArrayList<String> al,里面有元素"abc1","abc2","abc3"。
那么用构造方法ArrayList<? extends String> al1 = new ArrayList<? extends String>(al);就可在定义集合的时候也初始化了。
但前提是要先已经有了一个集合,并且要注意泛型的限定<? extends E>

作者: 周兴华    时间: 2012-8-31 21:36
其实在执行ArrayList<String> al=new ArrayList<String>();这句话的时候已经初始化了al,只不过al是初始容量为10的空列表。
作者: 袁艳超    时间: 2012-8-31 21:44
可以使用Arrays.asList 将数组转换对应的List,如: List<Integer> list2 = Arrays.asList(1,2,4);
也可以使用楼上的方法,List是一个接口,只能使用其实现类的构造方法来初始化;




作者: 吴通    时间: 2012-9-3 18:20
谢谢     已解决




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2