集合:一组对象的容器
集合框架:集合的类集
集合类也称做容器类,所有的集合类位于java.util包中,主要包括Colletion和Map接口。
Collection
|---List元素是有序的,元素可以重复,因为该体系有索引
| |----ArrayList底层数据结构使用的是数组数据结构。特点:查询快增删慢
| |----LinkedList底层使用的是链表数据结构。特点:查询慢增删快
| |----Vector底层是数组数据结构,线程同步,被ArrayList取代了
|---Set元素是无序的,元素不可以重复
| |----HashSet底层数据结构是哈希表
| |----TreeSet底层数据结构是二叉树
List特有方法:凡是可以操作角标的方法都是该体系特有的方法
插入add()方法、删除remove()方法、判断一个元素是不是其成员contains()方法、遍历iterator()方法
ArrayList
ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。
一.优点
1。支持自动改变大小的功能 2。可以灵活的插入元素 3。可以灵活的删除元素
二.局限性
跟一般的数组比起来,速度上差些
三.如何使用ArrayList
Add、AddRange、Remove、RemoveAt、RemoveRange、Insert、InsertRange
这几个方法比较类似
Add方法:用于添加一个元素到当前列表的末尾
AddRange方法:用于添加一批元素到当前列表的末尾
Remove方法:用于删除一个元素,通过元素本身的引用来删除
RemoveAt方法:用于删除一个元素,通过索引值来删除
RemoveRange:用于删除一批元素,通过指定开始的索引和删除的数量来删除
Insert:用于添加一个元素到指定位置,列表后面的元素依次往后移动
InsertRange:用于从指定位置开始添加一批元素,列表后面的元素依次往后移动
Clear方法:用于清除现有所有的元素
Contains方法:用来查找某个对象在不在列表之中
ToArray方法:这个方法把ArrayList的元素Copy到一个新的数组中。
例1
ArrayList List = new ArrayList();
for( int i=0;i<10;i++ ) //给数组增加10个Int元素
List.Add(i); //添加元素
//..程序做一些处理
List.RemoveAt(5);//将第6个元素移除
List.Insert(0,"aa");//将元素插入ArrayList的指定索引处
aList.RemoveRange(1,3);移除一定范围的元素,从索引为1的地方移除3个元素
for( int i=0;i<3;i++ ) //再增加3个元素
List.Add(i+20);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));//返回ArrayList包含的数组
ArrayList与数组转换
例2:
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));
例3:
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);
Int32[] values = new Int32[List.Count];
List.CopyTo(values);
去除ArrayList中重复的元素
LinkedList
1、获取链表的第一个和最后一个元素
2、获取链表元素
3、从链表生成子表
4、添加元素:添加单个元素
add(element)
add(index,element)
addFirst()
addLast()
5、删除元素
getFirst()和getLast(),获取元素,但不删除
removeFirst()和removeLast()获取元素,同时删除
删掉所有元素:清空LinkedList
lList.clear();
6、删除列表的首位元素
7、查找元素位置
8、替换元素
9、确认链表是否存在特定元素
10、链表添加对象
11、根据链表元素生成对象数组
HashSet
![](https://images0.cnblogs.com/blog2015/778241/201507/251801229378988.png)
![](https://images0.cnblogs.com/blog2015/778241/201507/251803003284702.png)
![](https://images0.cnblogs.com/blog2015/778241/201507/251803580007517.png)
![](https://images0.cnblogs.com/blog2015/778241/201507/251758036253281.png)
![](https://images0.cnblogs.com/blog2015/778241/201507/251758152653557.png)
![](https://images0.cnblogs.com/blog2015/778241/201507/251758262347905.png)
![](https://images0.cnblogs.com/blog2015/778241/201507/251758355783785.png)