底层使用Node数组,默认长度16;
如果数组某一个位置已经放了数据,那么会在下面放一个链表;
当数组扩容,达到64了,并且链表的长度达到了8了,在往链表后面放数据,就会转成红黑树的结构;
存储结构和HashMap是一样的;
和HashMap的区别就是增加了线程安全的操作;
初始化Node数组的时候才用cas+volatile来保证线程安全;
添加数据和删除的时候通过Synchronized来保证线程安全
底层使用Node数组,默认长度16;
如果数组某一个位置已经放了数据,那么会在下面放一个链表;
当数组扩容,达到64了,并且链表的长度达到了8了,在往链表后面放数据,就会转成红黑树的结构;
存储结构和HashMap是一样的;
和HashMap的区别就是增加了线程安全的操作;
初始化Node数组的时候才用cas+volatile来保证线程安全;
添加数据和删除的时候通过Synchronized来保证线程安全