# 集合框架
1.collection接口
父接口
Conllection collection = new ArrayList();
2.List接口
特点:有序,有下标,元素可以重复
Object get(int index):获取指定位置的元素
void add(int index,Object o):在index位置插入对象o
addAll(int index,Collection c):将一个集合中的元素添加到此index的位置
List subList(int fromIndex,int toIndex):返回fromIndex和toIndex之间的元素
3.ArraysList实现类
特点:有序,有下标,元素可以重复
底层结构:数组
4.Vector实现类
特点:有序,有下标,元素可以重复
底层结构:数组
速度较ArraysList慢,但线程安全
5.LinkedList实现类
特点:有序,元素可以重复
底层结构:双向链表
泛型结构
1.泛型类
2.泛型接口
3.泛型方法
例如 LinkedList<T> linkedList = new LinkedList<T>();
6.set接口
特点:无序,无下标,元素不可以重复
方法:全部继承Collection类的方法
底层结构:哈希表(数组+链表+红黑树)
7.HashSet实现类(重点)
特点:1.基于HashCode计算元素存放位置
2.当存入元素的哈希值相同时,会调用equals进行确认,如结果为true,则拒绝后者存入
由上特点可重写hashCode()和equals()方法
8.treeSet实现类
特点:有序,无下标,元素不可以重复
1.基于排列顺序实现元素不重复
2.实现了SortedSet接口,对集合元素自动排序
3.元素对象的类型必须实现Comparable接口(如何比较),指定排序规则
4.通过CompareTo方法确定是否为重复元素
综合
所有的集合的共性:add:添加
遍历{1.for加强 2.for遍历 3.iterator遍历}
remove:删除
contains:是否包含
indexof:获取下标
注意类型转换,向上转型和向下转型,intanceof();
# Map集合框架
Map接口
put():添加元素
remove():删除元素(删除key值)
遍历:1.使用KeySet();
for(String key:map.keySet()){ System.out.println(key+"---"+map.get(key)); }
2.使用entrySet()方法
for(Map.Entry<String,String>entry : map.entrySet()){ System.out.println(entry.getKey()+"---"+entry.getValue()) }
1.HashMap
线程不安全
2.TreeMap
自动排序类似上面
3.Collections工具类的使用
sort();排序
Collections.sort(list);//利用Collections的方法排序list集合
binarysearch():二分查找
copy();复制
shuffle();随机打乱
reverse():反转