容器体系结构(其中的Vector和Stack类现在已经极少使用):
Collection: 存放独立元素的序列。
Map:存放key-value型的元素对。(这对于一些需要利用key查找value的程序十分的重要!)
最常用的四个容器:
LinkedList :其数据结构采用链表,优势:删除和添加的效率很高;不足:随机访问元素时效率较ArrayList类低【改快读慢】。
ArrayList:其数据结构采用线性表,优势:访问和查询十分方便;不足:添加和删除的时候效率很低【读快改慢】。
HashSet: Set类不允许其中存在重复的元素(集),无法添加一个重复的元素(Set中已经存在)。HashSet利用Hash函数进行了查询效率上的优化,其contain()方法经常被使用,以用于判断相关元素是否已经被添加过。
HashMap: 提供了key-value的键值对数据存储机制,可以十分方便的通过键值查找相应的元素,而且通过Hash散列机制,查找十分的方便。
迭代器Iterator<E>:
迭代器是一种设计模式,可以遍历并选择序列中的对象,而开发人员并不需要了解该序列的底层结构。迭代器通常被称为”轻量级”对象,因为创建它的代价小。
JAVA的Iterator<E>功能比较简单,并且只能单向移动。
相对Iterator而言,for()循环遍历的速度较快点。而Iterator则比较通用,且序列的内部状态都由Iterator维护。
函数 | 功能 |
hasNext() | 检查序列下一个元素是否存在。 |
next() | 获取序列下一个元素。 |
remove() | 将迭代器新返回的元素删除。 |
1. Collection接口:
存取方式:2. 子接口Set:数据对象无顺序,不重复(equals)
3. 子接口List:数据对象有顺序,可重复
4. Map接口
定义了存储“键(key)—值(value)映射对”的方法。
HashMap(哈希表做索引)、TreeMap(二叉树做索引)等
5. Iterator(迭代器)接口:
标准、统一的遍历方式
多态(第三章内容)
EnhanceFor:增强的for循环,了解即可
6. Comparable接口
如何选择数据结构(了解,根据实际情况选择):
ArrayList:读快改慢
LinkedList:读慢改快
Hash:二者之间
Auto-boxing/unboxing:
自动打包/解包
泛型(Generic)【非常重要】
Reference:
1. http://www.cnblogs.com/airwindow/archive/2012/06/24/2560196.html
2. http://www.cnblogs.com/xuemaxiongfeng/p/3282938.html
to be continued ...