13 集合构架 java

来源:互联网 发布:编程要学些什么 编辑:程序博客网 时间:2024/05/17 01:34

Java集合构架

1. java集合构架支持三种类型:set、list、map,java集合构架中的所有具体类都实现了Cloneable与Serializable接口。

         Set中存储一组互不相同的元素

         List中存储一组顺序排列的元素

         Map中存储键值对

说明:HashSet与HashMap等基于hash的集合元素相等判断方式为:先使用hashcode()方法判断是否相同,若相同再使用equals()方法判断是否相同,若两者均相同才同。

TreeSet与TreeMap等基于Tree的集合元素排序方式为:原理聚焦于二叉搜索树。两种排序方式:自然排序与集合比较器排序。

注:可使用Collections.reverseOrder()方法获得逆自然顺序比较器。

2. 规则集Set

存储一组互不相同的元素,是否相同由元素的散列码判断

具体类:

a.HashSet        特点:无序、高效

b.LinkedHashSet     特点:插入有序

c.TreeSet                   特点:排列有序

注:只有对象之间相互可比时,才能将其加入到TreeSet中,两种可比方式:1. 元素实现Comparable接口         2.给规则集指定比较器

创建比较器格式如下:

Public class xxx implements Comparator{         Public int compara(Object a, Object b){                   //实现         }}

另外,建议使用new TreeSet(Collection)方式创建规则集,因为其只进行一次排序。而如果使用创建空TreeSet,然后使用add()方式添加元素的话,效率低下,因为每次add都会使规则集排序一次。

3. 线性表List

存储一组顺序排列的元素,即可以直接用下标访问集合元素

a.ArrayList      特点:数组线性表,查、改效率高

b.LinkedList     特点:链式线性表,删、增效率高

c.Vector           特点:同步

d. Stack             特点:栈

4. 图Map

存储一组键值对

a1.HashMap     数组结构:哈希表、非同步,K、V可以为空。特点:查、插、删效率高

a2.HashTable 数组结构:哈斯表、同步、K、V不可以为空,现已被HashMap所替代。

b.LinkedHashMap  特点:可按插入顺序(默认)或访问顺序排序

c.TreeMap       数组结构:二叉树。特点:按键值顺序排序,可参照TreeSet说明。

5. 泛型(广泛的类型)

格式:eg:Set<String>set=new TreeSet<String>();

用途:当集合类型不确定时,将运行时异常转换为编译时异常。

自定义泛型类:  class mm<T>{ ...}

自定义泛型方法:public <T> void mm(){...}

注意:若方法参数指定为ArrayList<父类>,则传入参数必须为ArrayList<父类>,两者必须完全相同。而ArrayList<? extends 父类>、ArrayList<? super 子类>代表两种体系,这种方式称为泛型限定。

6. 集合操作类Collections

包含了大量处理线性表方法和创建同步集合、不可修改集合静态方法。

7. 数组操作类Arrays

包含了大量数组操作方法。

8. 迭代器Iterator

是一个用于遍历集合的接口

9. 高级for循环

使用格式:for( 类型 mm:集合or数组){...}     //凡是支持迭代器的集合均支持高级for循环。

0 0
原创粉丝点击