集合
list集合
1.集合框架(简介、Collection方法、迭代器)
2.集合框架List(ArrayList特有方法、特有迭代器、具体对象特点、增长因子论证)
3.集合框架Vector
4.集合框架LinkedList
5.集合框架ArrayList中的重复元素去重及其底层原理
集合框架
- 集合框架中提供了一个内部类专门操作集合中的元素,这个内部类就是迭代器
数据结构
2.集合框架的由来:数据多了用对象进行存储,对象多了用集合来进行存储。
而存储数据的方式(数据结构)各有不同,所以存储的容器也就有多种,从而形成了集合框架这一体系。
3.再举一个形象的例子:
把夹娃娃机比作集合;那么夹娃娃的钩子就可以看成集合中的迭代器;夹娃娃必须通过娃娃机内部的钩子;
而钩子的外挂、移动方式等等都不相同,所以只能定义一个规则,而这个规则就可以看成几何内部的一个迭代器接口Iterator;
removeAll(Collection<?> c):移除此collection 中哪些也包含在指定collection中的所有元素(可选操作)
retainAll(Collection<?> c):仅保留此collection 中哪些也包含在指定collection中的所有元素(可选操作)
remove(Object o):从collection中移除指定元素的单个实例,前提是存在的话
iterator():返回在collection的元素上进行迭代的迭代器
Siez():返回此collection中的元素数
toArray():返回包含此collection中所有元素的数组
toArray(T[ ] a):返回包含此collection中所有元素的数组.放回数组运行时类型与指定数组的运行时类型相同
一、List集合
list集合是collection集合所特有的集合。
List集合代表一个元素有序,可重复的集合,集合中每个元素都有对应的顺序索引。List接口中增加了一些根据索引操作元素的方法:
void add(int index,E element ) 在列表的指定位置插入该元素。
boolean addAll(int index,Collection c) 将集合c包含的所有元素都插入到List集合的index处。
Object get(int index) 返回集合index索引出的元素。
1.ListIterator接口:List额外提供的一个listIterator()方法,提供了专门操作List的方法。
ListIterator接口在Iterator的基础上增加了如下方法:
boolean hasPrevious(): 返回该迭代器关联的集合是否还有上一个元素。
Object previous(): 返回该迭代器的上一个元素。
void add((E e): 在指定位置插入一个元素。
二集合框架:
list集合是有序的,在list中元素是可以重复的,因为该集合中有索引
Arraylist 数组结构 增删慢,查询快 有连续下标 线程不同步 增长因子为1.5 就是输入的长度超过原本定义的长度的时候会在原基础上增加1.5倍。
vector 数组结构 增删改查都慢 有连续下标 线程同步 增长因子2 就是输入的长度超过原本定义的长度的时候会在原基础上增加2倍。
Linkedlist 链表结构 增删快,查询慢 没有连续下标
Set 无序, 元素不可以重复
Iterator.remove()与Collection.remove()的区别:
它们并不能直接操作,要不就同时操作,同时利用集合方法进行操作,要不就用迭代器进行同时操作。
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';