A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 学习代码 中级黑马   /  2014-3-26 23:21  /  966 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

4 个回复

倒序浏览
Integer[] it = al.toArray(new Integer[al.size()]);
将集合:al 转化为数组类型; toArray方法要传一个储存列表元素的数组;为了避免空间浪费就指定数组大小为 al 的size。
同学看视频要仔细啊。。。。
回复 使用道具 举报
本帖最后由 宋超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-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, 下载次数: 21)

QQ截图20140326233331.png

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

QQ截图20140327000207.png
回复 使用道具 举报
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。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马