使用集合arrayList的时候为什么用它的父类Collection
2017-08-12 13:08
387 查看
Collection<String> arrayList = new ArrayList<>();
List<Student> list = new ArrayList<>();
我们有时候会遇到上面的代码,不理解为什么这么写,下面我来分享一下自己的想法:
首先,当我们在写程序的时候不知道应该用哪一个集合更好的时候就可以这么写,直接使用父类,但是有个问题是父类不能自实现,所以只能new一个子类的对象,new出来的对象只能使用Collection的方法,不能使用arrayList的,这样的好处是当你想把你的集合改为linkedList的时候没有必要去修改方法,因为你没有使用arrayList的特有方法,但是这样写代码有一个地方要注意,当你想遍历这个对象的时候你得这么写:
String[] array2 =
arrayList .toArray(new String[] {});// new
// String[]{}仅仅只是为了确定方法泛型
for (String s : array2) {
System.out.println(s);
}
List<Student> list = new ArrayList<>();
我们有时候会遇到上面的代码,不理解为什么这么写,下面我来分享一下自己的想法:
首先,当我们在写程序的时候不知道应该用哪一个集合更好的时候就可以这么写,直接使用父类,但是有个问题是父类不能自实现,所以只能new一个子类的对象,new出来的对象只能使用Collection的方法,不能使用arrayList的,这样的好处是当你想把你的集合改为linkedList的时候没有必要去修改方法,因为你没有使用arrayList的特有方法,但是这样写代码有一个地方要注意,当你想遍历这个对象的时候你得这么写:
String[] array2 =
arrayList .toArray(new String[] {});// new
// String[]{}仅仅只是为了确定方法泛型
for (String s : array2) {
System.out.println(s);
}
相关文章推荐
- PageCollectionView[Bug],使用Filter的时候,删除集合中的元素,会导致ArgumentOutOfRangeException
- JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用
- Python 集合是什么,为什么应该使用以及如何使用?
- 使用mybatis执行sql的时候为什么会出现Parameter index out of range (1 > number of parameters, which is 0)?
- Java并发集合(一)-CopyOnWriteArrayList分析与使用
- Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例
- 黑马程序员_学习笔记:9) 集合框架1:Collection(List、Set)、Iterator、List(ArrayList、LinkedList、Vector)
- 【转】委托和Lambda那点事(一步步集合案例分析,为什么使用委托 3解)
- 在使用SSIS设计脚本时候,出现的在PostExecute之外不能锁定变量集合进行读写访问的问题的解决
- Java基础知识强化之集合框架笔记10:Collection集合使用的步骤
- 为什么在C++使用pthread_create()的时候,类成员函数做线程的处理函数必须要定义成static类型的?
- 数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用 Array 而不是 ArrayList?
- List使用Foreach 修改集合时,会报错的解决方案 (Error: Collection was modified; enumeration operation may not execute. ) - 摘自网络
- 集合----ArrayList、HashTable、List、Dictionary的演化及如何选择使用
- JAVA迭代器与ArrayList集合的使用
- 使用ArrayList集合,对其添加100个不同的元素:
- [Silverlight入门系列]使用MVVM模式(2):集合Model /ObservableCollection/ICollectionView
- 委托和Lambda那点事(一步步集合案例分析,为什么使用委托 3解)