集合

1、队列 queue

实现方式:1)循环数组: ArrayDeque   2)链表  LinkedList    这两个类都实现了Queue接口

注:循环数组的实现方式效率高但是容量有限 ,如果对象数量没有上限则使用链表

2、集合类的基本接口:Collection接口

ArrayList 迭代:有序的  从0开始    HashSet迭代:无序的

3、使用链表的理由:尽可能的减少在列表中间插入或者删除元素所付出的代价    但是如果只有少数几个元素完全可以使用ArrayList

4、需要动态数组时,使用Vector类    ArrayList线程不同步   Vector线程同步但是同步操作开销大,所以在不需要同步时使用ArrayList

5、散列集:  

hashtable  散列表 两个对象相等(equals)散列码必相同

桶数:通常设置为预计元素个数的75%~150% 

装填因子:决定何时对列表进行再散列   0.75比较合理  当表中超过75%的位置已经填入元素,表自动进行散列

6、优先级队列: PriorityQueue  可以再构造其中提供比较器对象   底层:堆  

堆:堆是一个可以自我调整的二叉树

使用场景:任务调度   任务以随机顺序添加到队列中,每当启动一个新的任务时,都将优先级最高(最小)的任务从队列中删除

7、映射表:map               实现类:HashMap    TreeMap     

entrySet   keySet  values  可以从集中删除但是不能添加   同时映射表中的数据也被删除

 

 

 

  

posted @ 2017-10-17 10:46  孙宝路  阅读(88)  评论(0编辑  收藏  举报