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

一.概述:set是collection集合的子类,它罪常用的三个子类有Hashset,LinkedHashSet,Treeset
二.成员方法
boolean add(E e)
如果没有当前(可选操作),则将指定的元素添加到该集合中。
boolean addAll(Collection<? extends E> 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()方法来保证的,如果不重写则无法保证。
案例:
在这里插入图片描述
在这里插入图片描述
(三)成员方法:
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方法
	到底使用的是哪一种的排序取决于,构造方法.

自然排序案例
在这里插入图片描述
比较器排序案例
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/PreyHard/article/details/83592201