数组和集合、集合和集合之间的转换
1、集合与数组之间的转换
集合中如List和Set,都和数组有着高度的相似性,既然如此,实际上集合转数组也是情理之中的事情。
1.1 集合转数组 toArray
看几个常用的集合类,如上图继承关系图,可以看到他们都集成了一个抽象类AbstractCollection,这个类中就实现了Collection接口的两个方法:
- toArray ( )
- toArray ( T[ ] a )
List<Integer> pod=new ArrayList<Integer>(); for(int i=0;i<5;i++){ pod.add(i); } //第一种 Integer[] t=new Integer[pod.size()]; pod.toArray(t); //第二种 Integer[] t3=new Integer[1]; Integer[] t2=pod.toArray(t3);
1.2 数组转集合 asList
返回一个装载了数组a中所有数据的固定长度的List
public static void main(String[] args) { String[] pod = new String[]{"haha", "xixi", "heihei"}; List<String> list = Arrays.asList(pod); for (String bean : list) { System.out.println(bean); } }
如果希望转换为长度可变的List,则利用ArrayList构造方法:
public static void main(String[] args) { String[] pod = new String[]{"haha", "xixi", "heihei"}; List<String> list = Arrays.asList(pod); List<String> newList = new ArrayList<String>(list); for (String bean : newList) { System.out.println(bean); } }
2、集合与集合之间的转换 addAll
public static void main(String[] args) { TreeSet<Integer> pod = new TreeSet<Integer>(); pod.add(1); pod.add(3); pod.add(2); List<Integer> list = new ArrayList<Integer>(); list.addAll(pod); for (Integer bean : list) { System.out.println(bean); } }