Set
储存和取出的顺序不一致,元素唯一,不能根据索引获取元素
- HashSet集合 :底层是通过HashMap实现的 底层new HashMap对象 ,只用了 key 并没有使用 value value指向统一地址 new Object()
- LinkedHashSet:HashSet保证元素唯一,可是元素存放进去是没有顺序的,那么我们要保证有序,怎么办呢
在HashSet下面有一个子类java.util.LinkedHashSet,它是 链表和哈希表 组合的一个数据存储结构。 - TreeSet:是一个有序的集合,它的作用是提供有序的Set集合。基本操作(add、remove 和 contains)提供受保证的 log(n) 时间开销。 另外,TreeSet是非同步的。 它的iterator 方法返回的迭代器是fail-fast的。
boolean add(E e) //如果指定的元素尚不存在,则将其添加到此集合(可选操作)。
boolean addAll(Collection<? extends E> c) //如果指定集合中的所有元素尚未存在(可选操作),则将其添加到此集合中。
void clear() //从该集合中删除所有元素(可选操作)。
boolean contains(Object o) //如果此set包含指定的元素,则返回 true 。
boolean containsAll(Collection<?> c) //如果此集合包含指定集合的所有元素,则返回 true 。
static <E> Set<E> copyOf(Collection<? extends E> coll) //返回包含给定Collection的元素的 unmodifiable Set 。
boolean equals(Object o) //将指定对象与此set进行相等性比较。
int hashCode() //返回此set的哈希码值。
boolean isEmpty() //如果此集合不包含任何元素,则返回 true 。
Iterator<E> iterator() //返回此set中元素的迭代器。
static <E> Set<E> of() //返回包含零元素的不可修改集。
static <E> Set<E> of(E e1) //返回包含一个元素的不可修改集。
static <E> Set<E> of(E... elements) //返回包含任意数量元素的不可修改集。
boolean remove(Object o) //如果存在,则从该集合中移除指定的元素(可选操作)。
boolean removeAll(Collection<?> c) //从此集合中删除指定集合中包含的所有元素(可选操作)。
boolean retainAll(Collection<?> c) //仅保留此集合中包含在指定集合中的元素(可选操作)。
int size() //返回此集合中的元素数(基数)。
default Spliterator<E> spliterator() //在此集合中的元素上创建 Spliterator 。
Object[] toArray() //返回包含此set中所有元素的数组。
<T> T[] toArray(T[] a) //返回一个包含此set中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型。
1 HashSet
HashSet() //构造一个新的空集; 支持HashMap实例具有默认初始容量(16)和加载因子(0.75)。
HashSet(int initialCapacity) //构造一个新的空集; 支持HashMap实例具有指定的初始容量和默认加载因子(0.75)。
HashSet(int initialCapacity, float loadFactor) //构造一个新的空集; 支持HashMap实例具有指定的初始容量和指定的加载因子。
HashSet(Collection<? extends E> c) //构造一个包含指定集合中元素的新集合。
void clear() //从该集中删除所有元素。
Object clone() //返回此 HashSet实例的浅表副本:未克隆元素本身。
2 LinkedHashSet
LinkedHashSet() //使用默认初始容量(16)和加载因子(0.75)构造一个新的空链接哈希集。
LinkedHashSet(int initialCapacity) //使用指定的初始容量和默认加载因子(0.75)构造一个新的空链接哈希集。
LinkedHashSet(int initialCapacity, float loadFactor) //使用指定的初始容量和加载因子构造一个新的空链接哈希集。
LinkedHashSet(Collection<? extends E> c) //构造一个新的链接哈希集,其具有与指定集合相同的元素。
3 TreeSet
TreeSet() //构造一个新的空树集,根据其元素的自然顺序进行排序。
TreeSet(Collection<? extends E> c) //构造一个新的树集,其中包含指定集合中的元素,并根据其元素的 自然顺序进行排序 。
TreeSet(Comparator<? super E> comparator) //构造一个新的空树集,根据指定的比较器进行排序。
TreeSet(SortedSet<E> s) //构造一个包含相同元素并使用与指定有序集相同排序的新树集。
E ceiling(E e) //返回此set中大于或等于给定元素的 null元素,如果没有这样的元素,则 null 。
void clear() //从该集中删除所有元素。
Object clone() //返回此 TreeSet实例的浅表副本。
Iterator<E> descendingIterator() //以降序返回此集合中元素的迭代器。
NavigableSet<E> descendingSet() //返回此set中包含的元素的逆序视图。
E first() //返回此集合中当前的第一个(最低)元素。
E floor(E e) //返回此set中小于或等于给定元素的最大元素,如果没有这样的元素,则 null 。
SortedSet<E> headSet(E toElement) //返回此set的部分视图,其元素严格小于 toElement 。
NavigableSet<E> headSet(E toElement, boolean inclusive) //返回此set的部分视图,其元素小于(或等于,如果 inclusive为true) toElement 。
E higher(E e) //返回此集合中的最小元素严格大于给定元素,如果没有这样的元素,则 null 。
E last() //返回此集合中当前的最后一个(最高)元素。
E lower(E e) //返回此集合中的最大元素严格小于给定元素,如果没有这样的元素,则 null 。
E pollFirst() //检索并删除第一个(最低)元素,如果此组为空,则返回 null 。
E pollLast() //检索并删除最后一个(最高)元素,如果此集合为空,则返回 null 。
NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) //返回此set的部分视图,其元素范围为 fromElement到 toElement 。
SortedSet<E> subSet(E fromElement, E toElement) //返回此set的部分视图,其元素范围从 fromElement (含)到 toElement (独占)。
SortedSet<E> tailSet(E fromElement) //返回此set的部分视图,其元素大于或等于 fromElement 。
NavigableSet<E> tailSet(E fromElement, boolean inclusive) //返回此set的部分视图,其元素大于(或等于,如果 inclusive为true) fromElement 。