数组和集合、集合和集合之间的转换

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);
    }
}

 

posted @ 2020-10-13 17:03  随心的风  阅读(306)  评论(0编辑  收藏  举报