java6学习---Java 中的集合类

来源:互联网 发布:矩阵测光怎么设置 编辑:程序博客网 时间:2024/06/06 05:07

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要快些。

 

 

 

 

 

 

 

 

原创粉丝点击