java集合框架结构

1、总体结构


 

 

 

 

 Map和Collection是分开的。Collection下有List Queue Set 3个接口。

 

2、List结构


 

 

3、Set结构


 

 

 

 

4、Queue结构


 

 

 

5、Map结构


 

 

 

6、Deque结构


 

 

 

7、常用的List


ArrayList: 数组实现,初始长度10,每次扩容增加0.5倍(0.5倍可以通过位移>>1操作完成);

                最大长度Integer.MAX_VALUE , 并非Integer.MAX_VALUE - 8;

LinkedList:双向链表实现, 可用于栈 队列实现。

 

线程安全:

Collections.synchronizedList(list)实现,

Vector也是线程安全的(过时 不建议使用)

CopyOnwriteArrayList

 
 

 

8、常用的Set


HashSet:以HashMap实现的,只能存一个null值

LinkedHashSet:继承HashSet 可以按存入的顺序进行迭代。

TreeSet:以TreeMap实现 内部按compareTo进行比较 所有不能存null,否则空指针异常。

ConcurrentHashSet(google guava实现)

 

9、常用的Queue


PriorityQueue : 非FIFO队列 按优先级排序

 

线程安全:

ArrayBlockingQueue:数组实现 阻塞队列 需要指明初始大小,线程安全

LinkedBlockingQueue:列表实现 阻塞队列,可以不指明初始大小,默认Integer.MAX_VALUE;线程安全

ConcurrentLinkedQueue:链表实现 不阻塞 长度无限制;线程安全

PriorityBlockingQueue : 优先级队列 线程安全版本

 

10、常用的Deque


ArrayDeque:动态数组 长度是2的幂次方;作为栈时性能比LinkedList好;非线程安全

LinkedList:双向链表实现 ,非线程安全

 

线程安全:

ConcurrentLinkedDeque:链表实现

LinkedBlockingDeque:阻塞链表

栈的实现还有一个Stack类,继承Vector,线程安全(过时了 不建议使用) 

 

11、常用的Map


HashMap:只能存放一个null key

TreeMap: 不能存放null key

 

线程安全:

ConcurrentHashMap:线程安全

 

 


 

转载于:https://www.cnblogs.com/yangfei629/p/11470575.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值