黑马程序员技术交流社区

标题: 集合转数组&数组转集合 [打印本页]

作者: Mr.KevinヾY1n    时间: 2017-1-12 00:06
标题: 集合转数组&数组转集合
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;


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

作者: 袁志娜    时间: 2017-1-13 22:56

作者: jiangyu    时间: 2017-1-22 22:56
学习!!!!!!!

作者: 20161223    时间: 2017-1-23 11:02
学习学习,基础薄弱!




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