java笔记之集合

2014-11-23 23:34:53 · 作者: · 浏览: 0

前言

集合在数学意义上的概念是,对个数据放置在一起而建立起来的模型,这些数据类型可以不同; 在软件中的定义,一堆数据放置在一个空间中存储,将整个存储空间称为集合。 本文主要介绍collection接口下的List接口和Set接口,以及迭代器Iterator。

正文

Collection接口

1.Collection 层次结构 中的根接口。 JDK 不提供此接口的任何 直接 实现:它提供更具体的子接口(如 SetList)实现。 2.collection的主要子接口和实现类: \
3.Collection的常用API: \

List接口

list接口的实现类: ArrayList和LinkedList

1.ArrayList

1)特性< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPgoxo6mjqcrHy7PQ8rHto6y3vbHjsunV0goyo6mjqcO/tM7Aqcjdo6y8r7rPtcSzpLbI1NrUrcC0s6S2yMnP1Pa809K7sOuhowozo6mjqbyvus/ErMjPtcS/1bzkzqoxMC4KNKOpo6nUrcDto7qx5LOktcTK/dfpCjWjqaOpQXJyYXlMaXN0IMrHt8fP37PMsLLIq7XECjajqaOp1Nq8r7rPtcSx6cD6uf2zzNbQo6yyu8TcyrnTw0FycmF5TGlzdLG+ye21xLe9t6jJvrP9us3M7bzT1KrL2KGjCrP9t8fNqLn9tfy0+sb319TJ7bXEIHJlbW92ZSC78iBhZGQgt723qLTTveG5ucnPttTB0LHtvfjQ0NDeuMSjrLfx1PLU2sjOus7Ksbzk0tTIzrrOt73KvbbUwdCx7b340NDQ3rjEo6y1/LT6xve2vLvhxdez9gpDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uCjejqaOpQXJyYXlMaXN0ILXEs6PTw0FQSaO6CjxpbWcgc3JjPQ=="https://www.cppentry.com/upload_files/article/76/1_jwk8g__.jpg" alt="\">

2.LinkedList

LinkedList的特点 1.底层使用List 接口的链接列表实现。方便删除和插入。 2.默认长度为0. 3.LinkedList是非线程安全的。 4.在集合的遍历过程中,不能使用ArrayList本身的方法删除和添加元素。 除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException

迭代器

迭代器的特点

1.Iterator接口,本身是一种快速遍历集合的算法。 2.集合可以调用iterator方法获取迭代器。 3.迭代器是一个带有游标的线性表,用来记录结合的元素的地址。 4.迭代器与集合的关系草图:
1)相关代码片 2)对应的草图 \

5.Iterator的常用API: \

补充:List的实现类 Vector

Vector,Vector 类可以实现可增长的对象数组。 Vector的特性 1.顺序表,方便查找 2.每次扩容在原长度上增加一倍。 3.默认大小为10 4.Vector是线程安全。

Set接口

特点类似于数学集合,无顺序,不可重复,与List的特点相反。他只能有一个null值。 在这里讲讲他的实现类:HashSet,和TreeSet。

HashSet

基于哈希表的 Map 接口的实现. 特点 1.采用hash算法的Set,相当于hashMap的Key 2.默认的扔了为16,加载因子75%。 3.HashSet非线程安全。 4.内部原理:HashMap的key. 5.此实现不是同步的。 6.在集合的遍历过程中,不能使用ArrayList本身的方法删除和添加元素。 除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException 常用的API: \

TreeSet

特点: 1.默认的空间为0 2.采用二叉树算法实现的 3.原理为TreeMap的Key 4.在集合的遍历过程中,不能使用ArrayList本身的方法删除和添加元素。 除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException 5.按照自然排序存放元素

总结