Set

Set_第1张图片

HashSet

HashSet的秘密

Set_第2张图片

 

LinkedHashSet

  HashSet集合的特点:HashSet集合它是一个无序的集合,而且不允许重复

  LinkedHashSet集合的特点:LinkedHashSet extends HashSet,底层是一个哈希表(数组+链表、红黑树)+链表。多了一条链表(记录元素的存储顺序),保证元素有序。

Set_第3张图片

 TreeSet

从本质上来说TreeMap就是一棵”红黑树”,每个Entry就是一个节点。

  1、不能有重复的元素;
  2、具有排序功能;
  3、TreeSet中的元素必须实现Comparable接口并重写compareTo()方法,TreeSet判断元素是否重复 、以及确定元素的顺序 靠的都是这个方法;
      ①对于Java类库中定义的类,TreeSet可以直接对其进行存储,如String,Integer等,因为这些类已经实现了Comparable接口);
      ②对于自定义类,如果不做适当的处理,TreeSet中只能存储一个该类型的对象实例,否则无法判断是否重复。
  4、依赖TreeMap。
  5、相对HashSet,TreeSet的优势是有序,劣势是相对读取慢。根据不同的场景选择不同的集合。

Java集合中List,Set以及Map等集合体系详解(史上最全)

TreeSet ------自然排序与定制排序(比较器)

【TreeSet】自然排序与比较器排序和二叉树排序《比较器排序有问题》

CopyOnWriteArraySet

 Set_第4张图片

 

你可能感兴趣的:(Set)