Java-set集合及其子类Hashset,LinkedHashSet,Treeset

一.概述:set是collection集合的子类,它罪常用的三个子类有Hashset,LinkedHashSet,Treeset
二.成员方法
boolean add(E e)
如果没有当前(可选操作),则将指定的元素添加到该集合中。
boolean addAll(Collection c)
如果没有当前(可选操作),将指定集合中的所有元素添加到该集合中。
void clear()
从这个集合中移除所有的元素(可选操作)。
boolean contains(Object o)
如果这套 true返回包含指定的元素。
boolean containsAll(Collection c)
如果这套 true返回包含指定集合的所有元素。
boolean equals(Object o)
将指定的对象与此设置的相等性进行比较。
int hashCode()
返回此组的哈希代码值。
boolean isEmpty()
返回 true如果这个集合不包含元素。
Iterator iterator()
返回此集合中元素的迭代器。
boolean remove(Object o)
如果当前(可选操作),则从该集合中移除指定的元素。
boolean removeAll(Collection c)
从这个集合中移除包含在指定集合中的所有元素(可选操作)。
boolean retainAll(Collection c)
仅保留包含在指定集合中的此集合中的元素(可选操作)。
int size()
返回该集合中元素个数(其基数)。
Object[] toArray()
返回一个包含此集合中所有元素的数组。
T[] toArray(T[] a)
返回包含此集合中的所有元素的数组;返回的数组的运行时类型是指定的数组的运行时类型。
三.hashset
(一)数据结构:哈希表
(二)hashset如何保证元素的唯一性:靠元素重写hashCode()和equals()方法来保证的,如果不重写则无法保证。
案例:
Java-set集合及其子类Hashset,LinkedHashSet,Treeset_第1张图片
Java-set集合及其子类Hashset,LinkedHashSet,Treeset_第2张图片
(三)成员方法:
boolean add(E e)
如果没有已存在,则将指定的元素添加到该集合中。
void clear()
从这个集合中移除所有的元素。
Object clone()
返回该 HashSet实例浅拷贝:元素本身不是克隆。
boolean contains(Object o)
如果这套 true返回包含指定的元素。
boolean isEmpty()
返回 true如果这个集合不包含元素。
Iterator iterator()
返回此集合中元素的迭代器。
boolean remove(Object o)
如果当前存在,则从该集合中移除指定的元素。
int size()
返回该集合中元素个数(其基数)。
四.LinkedHashSet
(一)LinkedHashSet的概述: 元素有序 , 并且唯一
数据结构 有两个 链表和哈希表
链表保证有序 哈希表保证元素唯一
五.Treeset
TreeSet集合的特点: 元素唯一,并且可以对元素进行排序
保证元素的唯一性是靠compareTo方法的返回值来确定如果返回0 表示两个元素相等
则不重复存储

	排序:
		a:	自然排序:无参构造实现Comparable接口,并重写compareTo方法
		b: 使用比较器排序:有参构造要求重写compare方法
	到底使用的是哪一种的排序取决于,构造方法.

自然排序案例
Java-set集合及其子类Hashset,LinkedHashSet,Treeset_第3张图片
比较器排序案例
Java-set集合及其子类Hashset,LinkedHashSet,Treeset_第4张图片

你可能感兴趣的:(java)