java集合List学习(结合源代码)
2013-02-18 21:18
435 查看
一、首先,我们来一个简单的程序
View Code
这个程序本身没有太大的特别之处,但是我们从一些简单的语句里面可以看到Java中的List集合的实现;
首先List是一个接口,查看下源代码:
确实是一个接口,而且是继承自泛型类Collection<E>的一个List<E>的接口;
我们在看看ArrayList源代:
ArrayList<E>是一个泛型类继承自AbstractList<E>;
在进一步,我们查看AbstractList源代码:
AbstractList<E>是一个泛型类,实现List<E>接口;
从而我们找到了List与ArrayList的联系:ArrayList类实现List接口,从而相当而言List是ArrayList的父类型;
根据多态:父类型的引用可以指向子类型的对象
在:List list = new ArrayList();//List是一个接口 ---------------------------这段代码中list相当与List类型的一个引用,而ArrayList是子类型的对象,从而list可以指向new
ArrayList()所创建的对象
再看看下面的代码:
Person p1 = new Person();
Person p2 = new Person();
List list = new ArrayList();//List是一个接口
list.add(p1);
list.add(p2);//这里是将对象加入到list中
由list.add(p1);我们可以知道list可以添加运行时才得知类型的对象
*我们又来看看下面的代码:
List list2 = new LinkedList();
他也是List接口的实现类;
View Code
import java.util.ArrayList; import java.util.List; public class Person { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); List list = new ArrayList();//List是一个接口 list.add(p1); list.add(p2);//这里是将对象加入到list中 for(int i=0;i<list.size();i++){//利用循环,将person对象全部一一取出 Person p=(Person)list.get(i);//注意,这里一定要强制类型转换,因为List中取出的对象都是Object类型的,希望对你有所帮助 } } }
这个程序本身没有太大的特别之处,但是我们从一些简单的语句里面可以看到Java中的List集合的实现;
首先List是一个接口,查看下源代码:
确实是一个接口,而且是继承自泛型类Collection<E>的一个List<E>的接口;
我们在看看ArrayList源代:
ArrayList<E>是一个泛型类继承自AbstractList<E>;
在进一步,我们查看AbstractList源代码:
AbstractList<E>是一个泛型类,实现List<E>接口;
从而我们找到了List与ArrayList的联系:ArrayList类实现List接口,从而相当而言List是ArrayList的父类型;
根据多态:父类型的引用可以指向子类型的对象
在:List list = new ArrayList();//List是一个接口 ---------------------------这段代码中list相当与List类型的一个引用,而ArrayList是子类型的对象,从而list可以指向new
ArrayList()所创建的对象
再看看下面的代码:
Person p1 = new Person();
Person p2 = new Person();
List list = new ArrayList();//List是一个接口
list.add(p1);
list.add(p2);//这里是将对象加入到list中
由list.add(p1);我们可以知道list可以添加运行时才得知类型的对象
*我们又来看看下面的代码:
List list2 = new LinkedList();
他也是List接口的实现类;
相关文章推荐
- java集合List学习(结合源代码)
- java 集合学习笔记2-ArrayList LinkedList Vector 泛型 增强for 可变参数
- Java基础第十四天学习日记_集合、List集合、Set集合
- Java集合源码学习(8)_List接口的实现_CopyOnWriteArrayList
- 深入Java集合学习系列:LinkedList的实现原理
- Java集合深入学习:LinkedList的实现原理
- 5.java集合学习,Set,List,Map
- java学习日记_79:集合框架之数据结构的讲解和引出List子类的特点
- FastJson的学习之JSON互相转Map集合,List集合,JavaBean
- 黑马程序员_JAVA学习日记_JAVA中API:集合框架1(Collection,List,Set及其子类和迭代器的应用)
- java学习日记_77:集合框架之List接口
- Java学习总结(五)——(常用类,正则表达式,集合(List,Set) 迭代器)
- Java学习笔记--- Java对List集合的排序
- java集合学习之List(三)拷贝(深拷贝/浅拷贝)
- java日常学习:集合(二)list和set接口
- 共同学习Java源代码--数据结构--LinkedList类(八)
- Java 完成水吧点饮品系统开发 集合List<E>的学习
- Java集合源码学习(7)_List接口的实现_LinkedList
- 深入学习java集合:LinkedList<E>实现
- Java学习笔记(37)----------List集合