Java学习笔记-数组与容器间的转制-asList
2014-05-27 10:54
302 查看
先列举一下我们需要的api:
java.util.Collection接口中:
toArray
Object[] toArray()
返回包含此 collection 中所有元素的数组。如果 collection 对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。
返回的数组将是“安全的”,因为此 collection 并不维护对返回数组的任何引用。(换句话说,即使 collection 受到数组的支持,此方法也必须分配一个新的数组)。因此,调用者可以随意修改返回的数组。
此方法充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。
返回:包含此 collection 中所有元素的数组
java.util.Arrays类中:
asList
public static <T> List<T> asList(T... a)
返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)此方法同
Collection.toArray()一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了
RandomAccess。
此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
参数:
a- 支持列表的数组。返回:指定数组的列表视图。
这里面需要注意的问题还是很多的
一、int[] 无法转换成列表 因为aslist方法无法将基本类型转制保证成类,所以你要讲数组声明为Integer看代码:
Integer[] num = {2,3,4}; int[] num1 = {2,3,4}; List<Integer> l = Arrays.asList(num); List<int[]> l1 = Arrays.asList(num1);
Integer[] 可以正确传入,但是int[] 就不行,因为其内部不会自动包装,这个非常值得注意
二、aslist返回的是视图,而toarray返回的是一个副本
所谓视图是修改会被映射到原结构!
三、用aslist映射的列表只能增加和删除。参照:/article/5487468.html
相关文章推荐
- Java 数组 容器 学习笔记
- Java容器类学习笔记2--数组排序
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- Java容器学习笔记(由java编程思想和网上资料整理而成)
- nginx 源码学习笔记(八)——基本容器——array数组
- java学习笔记-数组,对象的拷贝
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- Java学习笔记---5.Java数组和方法
- JAVA学习笔记(4)数组(简)
- JAVA 学习笔记 (数组)
- C\C++ 程序员从零开始学习Android - 个人学习笔记(四) - java基础 - 数据类型、变量、字符串、数组
- Java 容器类学习笔记1--了解Java提供的容器类List、ArrayList、Vector及map、HashTable、HashMap
- Java容器类学习笔记3--同步性问题
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.2 相关Java基础知识 类装载器 反射机制
- java编程思想阅读笔记(九)数组和容器
- JNI学习笔记5——本地方法处理java数组/引用问题/缓存jfieldID/jmethodID
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- Java容器学习笔记(四)
- Java基础学习笔记(二)数组,包装类