太自由

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 JAVA集合概述:
 2 
 3 Collection:
 4     |---List有序的:通过索引就可以精确的操作集合中的元素。元素是可以重复的。
 5                   List提供了增删改查的动作。
 6                   增加add(element)  add(index,element);
 7                   删除remove(element) remove(index);
 8                   修改set(index,element);
 9                   查询get(index);
10             |---Vector:是可增长的数组结构。是同步的。增和查速度都慢,效率很低.目前不在使用。
11             |---ArrayList:是数组结构,长度可变的,(原理是:创建新数组+复制数组,查询速度很快)是不同步的。
12             |---LinkedList:是链表结构,不同步的,增删的速度很快。查询速度较慢.
13                         可用于实现堆栈和队列.
14                         堆栈:先进后出First in Last Out FILO 手枪弹夹
15                         队列:先进先出First in First Out FIFO 排队买票
16                 List是可以存储重复元素的,如果需求中要求容器中的元素必须唯一性.则看下面的Set集合.
17                 
18     |---Set:不包含重复集合元素的集合。而且方法和Collection一致。set集合取出元素只有一种:迭代器.
19         |--HashSet:哈希表结构,不同步,保证元素唯一性的方式依赖于:hashCode(),equals()方法,查询速度快,只能针对证唯一性的元素。
20         |--TreeSet:可以对set集合中的元素进行排序,使用的是二叉树结构,如何保证元素唯一性呢?
21                 使用的对象比较的方法的结果是否为0,是0,视为相同元素,不存。
22                 元素的排序比较方式有两种:
23                 1,元素自身具备自然排序,其实就是实现了Comparable接口重写了compareTo方法
24                 如果元素自身不具备自然排序,或者具备的自然排序不是所需要的,这时只能用第二种方式
25                 2,比较器:其实就是在创建TreeSet集合时,在构造函数中指定具体的比较方式。
26                 需要定义一个类实现Comparator接口,重写compare方法
27         到此为止,再往集合中存储对象时,通常该对象都需要覆盖hashCode,equals方法
28         同时实现Comparable接口,建立对象的自然排序。通常还有一个方法也会复写toString();
29                   
30 看集合的小技巧:
31 集合分体系:List Set
32 子类对象的后缀名都是所属体系,前缀名都是数据结构名称.
33 List:新出的子类都是以List结尾的,通常都是非同步的。
34     |--ArrayList : 看到array,就知道数组,查询速度快
35     |--LinkedList : 看到link,就知道链表,增删速度快
36                   
37 Set:
38     |--HashSet:看到hash,就知道哈希表,查询速度更快,并想到元素唯一,通过hashCode(),equals方法保证元素唯一性
39     |--TreeSet:看到tree,就知道二叉树,可以排序,排序想到Comparable-compareTo  Comparator-compare方法
40     
41         

 

posted on 2016-05-08 12:59  太自由  阅读(430)  评论(0编辑  收藏  举报