TreeSet的介绍和使用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"TreeSet的介绍和使用",在日常操作中,相信很多人在TreeSet的介绍和使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"TreeSet的介绍和
千家信息网最后更新 2026年11月01日TreeSet的介绍和使用
这篇文章主要介绍"TreeSet的介绍和使用",在日常操作中,相信很多人在TreeSet的介绍和使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"TreeSet的介绍和使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
TreeSet简介
public class MyTreeSetextends AbstractSet implements NavigableSet , Cloneable, Serializable {}
TreeSet继承了AbstractSet抽象类且实现了NavigableSet接口,是一个有序的集合,基于TreeMap实现,支持自然排序或者提供的Comparator进行排序。
NavigableSet简介
public interface NavigableSetextends SortedSet { /** 返回小于给定元素e的最大元素,如果没有则返回NULL。 **/ E lower(E e); /** 返回小于或等于给定元素e的最大元素,如果没有则返回NULL。 **/ E floor(E e); /** 返回大于或等于给定元素e的最小元素,如果没有则返回NULL。 **/ E ceiling(E e); /** 返回大于给定元素e的最小元素,如果没有则返回NULL。 **/ E higher(E e); /** 检索并删除第一个最小元素,如果没有则返回NULL。 **/ E pollFirst(); /** 检索并删除第后一个最大元素,如果没有则返回NULL。 **/ E pollLast(); /** 返回fromElement和toElement之间的元素 可设置是否包含fromElement和toElement **/ NavigableSet subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive); /** 返回toElement之前的元素 可设置是否包含toElement元素 **/ NavigableSet headSet(E toElement, boolean inclusive); /** 返回fromElement之后的元素 可设置包含fromElement元素 **/ NavigableSet tailSet(E fromElement, boolean inclusive); /** 返回fromElement和toElement之间的元素 包含fromElement但不包含toElement **/ SortedSet subSet(E fromElement, E toElement); /** 返回toElement之前的元素 不包含toElement元素 **/ SortedSet headSet(E toElement); /** 返回fromElement之后的元素 包含fromElement元素 **/ SortedSet tailSet(E fromElement);}
NavigableSet接口继承了SortedSet接口,最后三个接口继承自SortedSet
SortedSet简介
public interface SortedSetextends Set { /** 返回当前集合元素排序的比较器 **/ Comparator super E> comparator(); /** 返回fromElement和toElement之间的元素 包含fromElement但不包含toElement **/ SortedSet subSet(E fromElement, E toElement); /** 返回toElement之前的元素 不包含toElement元素 **/ SortedSet headSet(E toElement); /** 返回fromElement之后的元素 包含fromElement元素 **/ SortedSet tailSet(E fromElement); /** 返回第一个元素 **/ E first(); /** 返回最后一个元素 **/ E last();}
TreeSet成员变量
/** 具体存储元素的NavigableMap **/private transient NavigableMapm;private static final Object PRESENT = new Object();
TreeSet构造函数
MyTreeSet(NavigableMapm) { this.m = m;}/** 默认构造函数 基于TreeMap实现 **/public MyTreeSet() { this(new TreeMap<>());}/** 提供排序方法的构造函数 **/public MyTreeSet(Comparator super E> comparator) { this(new TreeMap<>(comparator));}/** 根据给定集合构造函数 **/public MyTreeSet(Collection extends E> c) { this(); addAll(c);}/** 根据给定排序的集合构造函数 **/public MyTreeSet(SortedSet s) { this(s.comparator()); addAll(s);}
元素添加
/** 添加单个元素 **/public boolean add(E e) { return m.put(e, PRESENT)==null;}/** 添加集合元素 **/public boolean addAll(Collection extends E> c) { if (m.size()==0 && c.size() > 0 && c instanceof SortedSet && m instanceof TreeMap) { SortedSet extends E> set = (SortedSet extends E>) c; TreeMap map = (TreeMap) m; Comparator> cc = set.comparator(); Comparator super E> mc = map.comparator(); if (cc==mc || (cc != null && cc.equals(mc))) { map.addAllForTreeSet(set, PRESENT); return true; } } return super.addAll(c);} 元素移除
/** 移除单个元素 **/public boolean remove(Object o) { return m.remove(o)==PRESENT;}/** 移除当前集合所有元素 **/public void clear() { m.clear();}元素查找
/** 是否包含元素 **/public boolean contains(Object o) { return m.containsKey(o);}/** 返回集合的长度 **/public int size() { return m.size();}/** 返回集合是否为空 **/public boolean isEmpty() { return m.isEmpty();}基于SortedSet的元素查找
public Comparator super E> comparator() { return m.comparator();}public SortedSet subSet(E fromElement, E toElement) { return subSet(fromElement, true, toElement, false);}public SortedSet headSet(E toElement) { return headSet(toElement, false);}public SortedSet tailSet(E fromElement) { return tailSet(fromElement, true);}public E first() { return m.firstKey();}public E last() { return m.lastKey();} 基于NavigableSet的元素查找
public E lower(E e) { return m.lowerKey(e);}public E floor(E e) { return m.floorKey(e);}public E ceiling(E e) { return m.ceilingKey(e);}public E higher(E e) { return m.higherKey(e);}public E pollFirst() { Map.Entry e = m.pollFirstEntry(); return e == null ? null : e.getKey();}public E pollLast() { Map.Entry e = m.pollLastEntry(); return e == null ? null : e.getKey();}public Iterator iterator() { return m.navigableKeySet().iterator();}public NavigableSet descendingSet() { return m.descendingKeySet();}public Iterator descendingIterator() { return m.navigableKeySet().descendingIterator();}public NavigableSet subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) { return new TreeSet<>(m.subMap(fromElement, fromInclusive, toElement, toInclusive));}public NavigableSet headSet(E toElement, boolean inclusive) { return new TreeSet<>(m.headMap(toElement, inclusive));} public NavigableSet tailSet(E fromElement, boolean inclusive) { return new TreeSet<>(m.tailMap(fromElement, inclusive));} 到此,关于"TreeSet的介绍和使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
元素
函数
排序
接口
学习
最大
最小
之间
简介
可设
单个
方法
更多
帮助
检索
实用
有序
接下来
三个
变量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网高科技
科技平台互联网
互联网科技垄断
互联网金融 金融科技
上海致骋互联网科技
友谊互联网络科技
互联网科技大会
左右互联网络科技
互联网科技创新企业排名
广州优美互联网科技
武汉健翔互联网络科技有限公司
昭通互联网科技选哪家
米聚互联网科技南京有限公司排面
互联网新科技动漫ppt素材
深圳艾果互联网通讯科技
科技互联网海报
每天都有哪些好的互联网科技
互联网科技实习生岗位
互联网科技新闻
唐山双旺合互联网科技产业园
互联网科技公司排名
伟宏互联网科技
互联网和科技技术
涨乐互联网科技
盈实互联网科技
互联网科技卖菜
朗新科技与工业互联网
科技与互联网发展
中科明德北京互联网科技
互联网金融科技元年