2016.7.23
对集合类的遍历优先使用迭代器
Collection接口是所有集合接口的根接口,它所有的抽象方法是通用的集合操作,集合管理的单个对象称为集合元素。这里说的根接口是指功能上的,实际上,Collection接口还继承了Iterator接口。
set是不能包含重复元素的集合,元素的位置往往不确定,因而不能通过位置存取元素
list的集合元素按照一定的顺序排序
queue 队列集合,先进先出
dequeue 支持从两端进行元素插入和删除
Map管理一批键值对(key-value pairs)
map就是映射之意
可以通过对对象的键(key)访问对象的值,特点是按照键的升序方式管理键值对
list和set
有共同的父类,它们的用法也是一样的,不同的就是set的无序的,list是有序的,set中不能有相同的元素,而list中可以有。
list和set的用途非常广泛,list可以完全代替数组来使用。
map 是独立的合集,它使用键值对的方式来储存数据,键不能有重复的,值可以重复。
map不像上边两种集合那个用的广泛,不过在servlet 和jsp中,map可是绝对的重中之重,页面之间传值全靠map。
小了说:List Set Map都是接口,前两个继承至Collection接口,Map为独立接口
大了说:就是集合类的一章内容
Set下有HashSet,LinkedHashSet,TreeSet
List下有ArrayList,Vector,LinkedList
Map下有Hashtable,LinkedHashMap,HashMap,TreeMap
还有Collection接口下还有个Queue接口,有PriorityQueue类
数据结构的东西永远都是有个最优选择的问题
ArrayList数组集合
数据查询和数据更新较优
ArrayList底层是数组实现,查询上是线性的,有索引可循,而LinkedList是链表,每一个元素是一个节点,迭代下一个元素是寻址,查询比ArrayList慢,数据更新也要先查询到位置所有也是ArrayList较优
LinkedList链表集合
数据插入数据删除较优
LinkedList底层是链表,插入和删除数据只需要改变链接的指向就行,而ArrayList则需将新数据或被删数据后的所有数据全部后移或前移
HashSet
有5个构造函数,4个调用了HashMap的构造函数,1个调用了HashLinkedMap构造函数
HashLinkedSet继承HashSet
有4个构造函数,全部调用了Hash那个HashLinkedMap的构造函数
网友评论