Java基础类_集合类_Set

接口:Collection、Set

1、继承结构

(1)Javadoc文档【tree】:
在这里插入图片描述
(2)类图:
在这里插入图片描述

2、方法

(1)Collection接口
在这里插入图片描述

  • Object:equals、hashCode
  • 判断:containsisEmptysize
  • 遍历:iterator
  • add、remove、clear

(2)Set接口
在这里插入图片描述

  • add、remove、clear
  • contains、isEmpty、size
  • iterator
  • of:不可修改Set

实现类:HashSet、TreeSet

1、继承结构

在这里插入图片描述
类图:
在这里插入图片描述

2、相关实现类

抽象类

(1)AbstractCollection

Collection接口的骨架式实现类,最小化实现Collection接口的代价。

(2)AbstractSet

只实现了equals、hashCode
在这里插入图片描述

接口

SortedSet

在这里插入图片描述
对元素提供排序的Set。【自然顺序排序 / Comparator排序】。
元素必须实现Comparable接口(或使用比较器)。
所有元素必须是相互可比较的e1. compareto (e2)(或comparator.compare(e1, e2))不能对元素e1和e2抛出ClassCastException异常。

迭代器:按元素升序遍历set。

  • Comparator<? super E> comparator()
  • E first()、E last()
  • SortedSet<E> headSet(E toElement)、SortedSet<E> subSet(E fromElement, E toElement)
  • SortedSet<E> subSet(E fromElement, E toElement)
NavigableSet(子接口)

在这里插入图片描述
定位搜索目标的最接近匹配。方法lower(E)、floor(E)、ceiling(E)和higher(E)分别返回小于、小于或等于、大于或等于和大于给定元素的元素,如果不存在这样的元素则返回null。

可按升序或降序访问和遍历NavigableSet。
descendingSet()方法返回集合的视图,其中所有关系方法和方向方法的意义颠倒了。【升序操作和视图的性能可能比降序操作和视图的性能快。】

pollFirst()和pollLast(),它们返回和删除最低和最高元素(如果存在),否则返回null。
subSet(E, boolean, E, boolean)、headSet(E, boolean)和tailSet(E, boolean)与同名的SortedSet。不同之处在于,它们接受描述下界和上界是包含还是排斥的附加参数。

在允许null元素的实现中,导航方法的返回值可能是不明确的。但是,即使在这种情况下,也可以通过检查contains(null)来消除结果的歧义。为了避免这类问题,建议这个接口的实现不允许插入null元素。(注意,可比较元素的排序集本身不允许为空。)

具体实现类

1、HashSet

在这里插入图片描述
非同步。转换同步:Collections.synchronizedSet(new HashSet(…))
在这里插入图片描述
在这里插入图片描述

LinkedHashSet(子类)


使用Hash表、双向链表维护 =>可以定义维护遍历顺序(元素插入顺序)。

非同步。转换同步:Collections.synchronizedSet(new HashSet(…))

只重写了Iterable接口中的spliterator()方法。

2、TreeSet

在这里插入图片描述
自然顺序(元素)/ Comparator提供的排序

非同步Collections.synchronizedSortedSet(new TreeSet(...));

降序:
在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值