黑马程序员技术交流社区
标题: 有关数组转换成集合后的疑问 [打印本页]
作者: cyh8807 时间: 2013-3-12 09:01
标题: 有关数组转换成集合后的疑问
本帖最后由 赵彦辉 于 2013-3-12 22:04 编辑
- public static void main(String[] args)throws Exception
- {
- int[] arr = {1,2,3,45};
- List<int[]> list = Arrays.asList(arr);
- System.out.println(list);
- Iterator ite = list.iterator();
- while(ite.hasNext())
- {
- System.out.println(ite.next());
- }
- }
复制代码 我们都知道Arrays是对数组进行操作的工具类,其asList()方法是将数组转换成集合
1、如果数组中的元素都是对象,变成集合时,数组中的元素就直接转换成集合中的元素。
2、如果数组中的元素都是基本数据类型,变成集合时,会将该数组作为集合中的元素存在。
上面的代码是将一个int类型的数组转换成集合,我的问题是:能否从集合中,再取出该数组的所有元素
我自己测试的是只能取出该数组的内存地址
希望大家可以帮我完成下面的代码
作者: 沈文杰 时间: 2013-3-12 09:27
- public class AsListTest{
- public static void main(String[] args)throws Exception
- {
- int[] arr = {1,2,3,4,5};
- List<int[]> list = Arrays.asList(arr);
- //在定义迭代器时候加上泛型
- Iterator<int[]> ite = list.iterator();
- while(ite.hasNext())
- {
- //定义一个对象由于接收取出的元素
- int[] a = ite.next();
- //使用for循环迭代取出
- for(int i : a){
- System.out.println(i);
- }
- }
- }
- }
复制代码
作者: scott0610 时间: 2013-3-12 11:59
数组的工具类 Arrays提供的asList()方法是把一个数组或指定个数的对象转换成一个List集合,
但这个List集合既不是ArrayList实现类的实例,也不是Vector实现类的实例,而是Arrays的内部类ArrayList实例。Arrays.ArrayList是一个固定长度的List集合,程序只能遍历访问该集合里的元素,不可增加,删除该集合中的元素。
还有一点需要注意,集合和数组不一样,数组元素既可以是基本数据类型,也可以是对象(对象的引用变量),
而集合只能是对象(对象的引用变量)。
如果数组中的元素都是基本数据类型,变成集合时,会将该数组作为集合中的元素存在。这是因为Java虚拟机自动实现了包装的作用。
希望对你有所帮助。
作者: 李阳 时间: 2013-3-12 14:51
把int型数组元素装箱成Integer对象。
数组定义成Integer[] a = {1,2,3,4,5};
这样集合里存的就是对象,不是int数据了。就可以直接迭代。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |