当前位置 : 主页 > 编程语言 > java >

TreeSet

来源:互联网 收集:自由互联 发布时间:2022-07-22
/* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知


 

/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*/

TreeSet_底层实现

1、简介

        TreeSet类扩展了 AbstractSet和implements NavigableSet接口。它与 HashSet 类非常相似,不同之处在于它按排序顺序存储元素。其底层实现为红黑树。

2、结构

TreeSet_自定义排序_02

TreeSet_treeset_03

编辑

3、特性

        它扩展AbstractSet了扩展类的AbstractCollection类。

        它实现NavigableSet了扩展接口的SortedSet接口。

        不允许重复值。

        不允许null值。

        有序集合。

        不允许插入异构对象。

        非线程安全。

4、案例

 

//自动排序

TreeSet<Integer> treeSet=new TreeSet<Integer>();



treeSet.add(20);



treeSet.add(18);



treeSet.add(17);



treeSet.add(21);



System.out.println(treeSet);





TreeSet<String> treeSet2=new TreeSet<String>();



treeSet2.add("a");



treeSet2.add("c");



treeSet2.add("b");



treeSet2.add("ab");



System.out.println(treeSet2);TreeSet<Person> treeSet=new TreeSet<Person>();

//按照年龄排序(自定义排序的规则)

treeSet.add(new Person("aa", 20));
treeSet.add(new Person("bb", 18));
treeSet.add(new Person("cc", 17));
treeSet.add(new Person("dd", 21));

System.out.println(treeSet);

TreeSet_自定义排序_04

new TreeSet<Integer>();

treeSet.add(20);

treeSet.add(18);

treeSet.add(30);

treeSet.add(25);

System.out.println(treeSet);

System.out.println(treeSet.first()); //返回第一个(最小)

System.out.println(treeSet.last()); //返回最后一个(最大);

System.out.println(treeSet.floor(24));// <=指定元素的最大的元素

System.out.println(treeSet.lower(25)); // <指定元素的最大的元素

System.out.println(treeSet.ceiling(25));// >=指定元素的最小的元素

System.out.println(treeSet.higher(18)); // >指定元素的最小的元素

System.out.println(treeSet.pollFirst()); //获得第一个元素 并且将其从集合中删除

System.out.println(treeSet);

System.out.println(treeSet.pollLast()); //获得最后一个元素 并且将其从集合中删除

treeSet.add(21);

treeSet.add(24);

System.out.println(treeSet);

//返回的是>=20&& <24的所有集合元素
SortedSet<Integer> set= treeSet.subSet(20, 24);

for(Integer integer:set)
System.out.println(integer);

//返回的是>=21的所有集合元素
SortedSet<Integer> set2= treeSet.tailSet(21);

for(Integer integer:set2)
System.out.println(integer);


System.out.println(treeSet);

TreeSet_底层实现_05

更多关注

​​https://edu.51cto.com/course/20124.html​​

上一篇:表单提交后禁用按钮
下一篇:没有了
网友评论