1、所谓框架是一个类库的集合,集合框架就是一个用来表示和操作集合的统一框架,包括实现集合的接口和类
2、结合框架中的接口:基类collection派生出set list,set派生出SortedSet。基类map派生出SortedMap.
Collection:集合层次中根接口,jdk没有提供直接实现这个类的接口。
Set:不能包含重复的元素,set接口是直接collection继承的,并没有包含新的方法。
SortedSet:是一个按照升序排序的集合。
List:是一个有序(不是排序,元素是按照顺序摆放的)的集合,可以包含重复的元素,提供按照索引访问的方式。
Map:包含key-value对,map不能包含有重复key。SortedMap:是一个按照升序排序key的map。
3、集合框架中的实现类:
3、
4、迭代器
作用:有的集合类没有提供get()方法,那么可以将集合转换成迭代器方便元素的获取。
5、Collections类
a、排序(主要针对列表的排序)对list对象排序需要求list对象的元素实现comparable接口。排序结果是自然排序的
或者通过调用sort(list,comparator),需要实现比较器。
b、取最大元素和最小元素Collections.max()和Collections.min();
c、对已排序的列表查找binarySearch();
6、LinkedList类
LinkedList是采用双向循环链表实现的。
可以用LinkedList实现栈,队列,双向队列。
7、arraylist与linkedlist比较
arraylist底层是数组,linkedlist是一般的双向链表
我们经常在list的开始处增加元素,或者在list中插入和删除操作,我们就选择linkedlist,否则我们将使用arraylist更加快速。
8、HashSet类
实现set接口的hash table(哈希表),应该其不能有重复的元素,实际上是依靠HashMap来实现的。
因此我们应该为要存到散列表的各个对象定义hashCode()和equals();
散列表又称为哈希表,java是通过负载因子来决定何时对散列表再散列,HashSet的默认负载因子是0.75,负载因子越高,内存使用率越高,元素寻找时间越长,
负载因子越低,内存使用率越低,寻找元素时间越短。
我们一般用HashSet存放盖对象时对象需要实现HashCode()和equals()方法。
9、TreeSet类
TreeSet是依靠TreeMap来实现的,实现SertedSet接口
TreeSet是有序集合,里面的元素按照升序排序,缺省是按照自然排序的,这意味着TreeSet里的元素需要实现comparable接口。
我们可以在TreeSet的构造函数构造对象时,传递实现了comparator接口的比较器对象。
10、HashSet与TreeSet的比较
HashSet是基于hash算法实现的,其算法要优于TreeSet,通常情况我们都使用HashSet,只有我们在需要排序功能的时候才使用TreeSet.
11、HashMap
HashMap是实现Map接口的,用来存储键值和值的数据对。
常用到的方法:keySet(),values(),entrySet()。
TreeMap是按照key排序的map
在多线程情况下,一般用vector来实现同步列表,一般情况下基本上ArrayList去代替vector。
HashTable里面的方法也是同步的,一般用HashMap去代替HashTable,其比用Collections获取的同步map要快些。