文章目录
Set
hashset(基于hashmap)
1.无序,值不重复
2.hashcode值
3.想让两个不同对象相等,必须覆盖hashcode和equals方法
如果hash一样,equals为false。那就是哈希值下顺延,放同一个哈希桶,但桶里是个链表。
treeset(基于treemap)二叉树
1.使用二叉树原理对新增对象排序,插入二叉树
2.Integer,string默认排序。自定义对象必须实现comparable接口,覆写compareTo函数
3.覆写compareTo要返回对应值才能排序
LinkedHashSet(基于linkedhashmap实现的同hashset操作)
1.linkedhashmap实现,增删效率快
2.继承于hashset,操作一样
线程安全
1.CopyOnWriteArraySet
底层采用了CopyOnWriteArrayList数据结构来实现。在add元素时,采用的是可重入锁来实现线程安全。