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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cyh8807 中级黑马   /  2013-3-12 09:01  /  1703 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵彦辉 于 2013-3-12 22:04 编辑
  1. public static void main(String[] args)throws Exception
  2.         {
  3.                 int[] arr = {1,2,3,45};
  4.                 List<int[]> list = Arrays.asList(arr);
  5.                 System.out.println(list);
  6.                 Iterator ite = list.iterator();
  7.                 while(ite.hasNext())
  8.                 {
  9.                         System.out.println(ite.next());
  10.                 }
  11.         }
复制代码
我们都知道Arrays是对数组进行操作的工具类,其asList()方法是将数组转换成集合

1、如果数组中的元素都是对象,变成集合时,数组中的元素就直接转换成集合中的元素。
2、如果数组中的元素都是基本数据类型,变成集合时,会将该数组作为集合中的元素存在。

上面的代码是将一个int类型的数组转换成集合,我的问题是:能否从集合中,再取出该数组的所有元素
我自己测试的是只能取出该数组的内存地址
希望大家可以帮我完成下面的代码




评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

4 个回复

倒序浏览
  1. public class AsListTest{
  2. public static void main(String[] args)throws Exception
  3.         {
  4.         int[] arr = {1,2,3,4,5};
  5.         List<int[]> list = Arrays.asList(arr);
  6.        //在定义迭代器时候加上泛型
  7.         Iterator<int[]> ite = list.iterator();
  8.         while(ite.hasNext())
  9.         {
  10.                 //定义一个对象由于接收取出的元素
  11.                 int[] a = ite.next();
  12.                 //使用for循环迭代取出
  13.              for(int i : a){
  14.                      System.out.println(i);
  15.              }  
  16.         }
  17.         }
  18. }
复制代码

点评

谢谢你的回答,很满意啊  发表于 2013-3-12 22:03

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
cyh8807 + 3
猫腻 + 1

查看全部评分

回复 使用道具 举报
数组的工具类 Arrays提供的asList()方法是把一个数组或指定个数的对象转换成一个List集合,
但这个List集合既不是ArrayList实现类的实例,也不是Vector实现类的实例,而是Arrays的内部类ArrayList实例。
Arrays.ArrayList是一个固定长度的List集合,程序只能遍历访问该集合里的元素,不可增加,删除该集合中的元素。
还有一点需要注意,集合和数组不一样,数组元素既可以是基本数据类型,也可以是对象(对象的引用变量),
而集合只能是对象(对象的引用变量)。
如果数组中的元素都是基本数据类型,变成集合时,会将该数组作为集合中的元素存在。这是因为Java虚拟机自动实现了包装的作用。

希望对你有所帮助。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
把int型数组元素装箱成Integer对象。
数组定义成Integer[] a = {1,2,3,4,5};
这样集合里存的就是对象,不是int数据了。就可以直接迭代。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马