- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- public class Demo04 {
- public static void main(String[] args) {
- String[] arr1 ={"aa","vv","ee","rtr","n"};
- List<String> list = Arrays.asList(arr1); //将数组转化为List集合
- System.out.println(list);//[aa, vv, ee, rtr, n]
-
- int[] arr = {11,22,77,44,33,66};
- List<int[]> list2 = Arrays.asList(arr);
- System.out.println(list2);//[[I@11671b2] ..基本数据类型转换,会把整个数组当做一个对象
-
- Integer[] arr3 = {11,22,77,44,33,66};
- List<Integer> list3 = Arrays.asList(arr3);
- System.out.println(list3); //基本数据类型想转化成集合,就利用基本数据类型的包装类
- //总结:数组转化集合,必须是引用数据类型,如果是基本数据类型利用其包装类
-
- //集合转数组
- ArrayList<String> list4 = new ArrayList<String>();
- list4.add("aaa");
- list4.add("bbb");
- list4.add("ccc");
- String[] arr4 = list4.toArray(new String[0]); //这个长度暂定为0看结果
- for (int i = 0; i < arr4.length; i++) { //因为是引用数据类型,List重写了toString()方法可以直接打印。而数组不可以的
- //所以需要挨个遍历数组,如果直接打印数组,则只会打印出地址值
- System.out.print(arr4[i] + " "); //aaa bbb ccc
- }
-
- String[] arr5 = list4.toArray(new String[5]); //这个长度暂定为5看结果
- for (int i = 0; i < arr5.length; i++) { //因为是引用数据类型,List重写了toString()方法可以直接打印。而数组不可以的
- System.out.print(arr5[i] + " "); //aaa bbb ccc null null ,发现后面是2个null,什么意思呢?就是说
- //当我们设置的长度大于集合长度,那么数组会自动补充null值
- }
- //总结:当集合转换数组,数组的长度小于等于集合的长度时,数组的长度等于集合的长度。
- //如果数组的长度大于集合长度,那么分配的长度就和你指定的长度一样的,自动补充null值
- }
- }
复制代码 |
|