黑马程序员技术交流社区

标题: 代码每太明白 [打印本页]

作者: 学习代码    时间: 2014-3-26 23:21
标题: 代码每太明白
  1. import java.util.*;
  2. class  CollectionToArray
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList<Integer> al = new ArrayList<Integer>();
  7.                 al.add(1);
  8.                 al.add(2);
  9.                 al.add(3);
  10.                 Integer[] it = al.toArray(new Integer[al.size()]);//new Integer[al.size()] 这一步没太看懂 求解释
  11.                 System.out.println(Arrays.toString(it));
  12.         }
  13. }
复制代码

作者: papercup    时间: 2014-3-26 23:31
Integer[] it = al.toArray(new Integer[al.size()]);
将集合:al 转化为数组类型; toArray方法要传一个储存列表元素的数组;为了避免空间浪费就指定数组大小为 al 的size。
同学看视频要仔细啊。。。。
作者: 宋超2356    时间: 2014-3-26 23:42
本帖最后由 宋超2356 于 2014-3-26 23:49 编辑
  1. import java.util.*;
  2. class  Test
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList<Integer> al = new ArrayList<Integer>();
  7.                 al.add(1);
  8.                 al.add(2);
  9.                 al.add(3);
  10.                 Integer[] it = al.toArray(new Integer[al.size()]);//生成一个数组而且是Integer类型的,其大小是al.size()的大小。
  11.                 System.out.println(Arrays.toString(it));
  12.         }
  13. }
复制代码


如果写al.toArray()就是object类型,还的转换为Integer比较麻烦...关于其中的al.size()只能小不能大,大了浪费空间只能输出null,小了可以自动扩充
作者: caijunsong    时间: 2014-3-26 23:45
本帖最后由 caijunsong 于 2014-3-27 00:14 编辑
  1. import java.util.*;
  2. class Day2204
  3. {
  4.      public static void main(String[] args)
  5.     {

  6.           ArrayList<Integer> al = new ArrayList<Integer>();

  7.           al.add(1);

  8.          al.add(2);

  9.          al.add(3);
  10.          int s=al.size();//返回元素的格式
  11.          System.out.println(s);
  12.          Integer []in=new Integer[s];创建Integer型数组
  13.          for(int j=0;j<in.length;j++)
  14.          System.out.println(in[j]);//参照下面的照片
  15. I        nteger[] it = al.toArray(in);

  16.          System.out.println(Arrays.toString(it));
  17.        }

  18. }
  19. //你看看toArry的参数和返回值是不是都是一样都是数组,T不就是Integer
复制代码

QQ截图20140326233331.png (1.13 KB, 下载次数: 23)

QQ截图20140326233331.png

QQ截图20140327000207.png (33.38 KB, 下载次数: 19)

QQ截图20140327000207.png

作者: MVP    时间: 2014-3-27 09:39
Integer[] it = al.toArray(new Integer[al.size()]);
分解就是:
int a=al.size();  //获取集合的个数
Integer[] i=new Integer[a];      //定义一个数组,开辟a个空间
Integer[] it=al.toArray(i);  //将定义好的数组传递给toArray()进行排序,将排序好的数组赋给Integer数组it。




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