java的treeset是一种基于红黑树实现的有序集合。它的特点是元素按照大小顺序排序,可以快速地增加、删除和搜索元素。本文将介绍如何使用java中的treeset函数进行有序集合操作,以便更好地应用在实际编程中。
一、TreeSet的基本操作
1.创建TreeSet对象
要使用TreeSet,需要先创建一个TreeSet对象。可以使用无参数的构造函数来创建一个空的TreeSet,也可以在创建TreeSet对象时指定一个Comparator来自定义排序规则。
示例代码:
立即学习“Java免费学习笔记(深入)”;
八梦企业网站源码v1.0 是由八梦网络工作室开发的一款企业网站源码,适合一般中心企业使用。网站功能完善,操作简单。后台可以直接发布文章、图片。网站采用DIV+css布局、可以生成静态,符合SEO优化。目前主要的板块有 关于我们、联系我们、新闻动态、产品中心、客户案例。如果需要可以进行增加,不懂可以联系我们。程序采用asp+access搭建,空间必须要支持ASP,都可以访问。一般100M就够用了。
TreeSetset = new TreeSet<>(); TreeSet set2 = new TreeSet<>(new Comparator () { @Override public int compare(String o1, String o2) { // 自定义排序规则 return o1.compareToIgnoreCase(o2); } });
2.添加元素
通过add()方法向TreeSet中添加元素。TreeSet会自动按照元素大小顺序进行排序,相同的元素只会保存一次。
示例代码:
立即学习“Java免费学习笔记(深入)”;
set.add(3); set.add(1); set.add(2); set.add(3); // 结果为[1, 2, 3] System.out.println(set);
3.删除元素
可以使用remove()方法删除TreeSet中的元素。
示例代码:
立即学习“Java免费学习笔记(深入)”;
set.remove(3); // 结果为[1, 2] System.out.println(set);
4.判断元素是否存在
可以使用contains()方法判断TreeSet中是否存在某个元素。
示例代码:
立即学习“Java免费学习笔记(深入)”;
boolean contains = set.contains(2); // 结果为true System.out.println(contains);
5.获取元素个数
可以使用size()方法获取TreeSet中元素的个数。
示例代码:
立即学习“Java免费学习笔记(深入)”;
int size = set.size(); // 结果为2 System.out.println(size);
6.遍历元素
可以使用for循环或者forEach()方法遍历TreeSet中的元素。
示例代码:
立即学习“Java免费学习笔记(深入)”;
for (Integer i : set) {
System.out.print(i + " ");
}
System.out.println();
set.forEach(System.out::println);输出结果:
1 2 1 2
二、TreeSet的高级操作
1.获取第一个元素和最后一个元素
可以使用first()和last()方法获取TreeSet中的第一个元素和最后一个元素。
示例代码:
立即学习“Java免费学习笔记(深入)”;
Integer first = set.first(); Integer last = set.last(); // 结果为1 2 System.out.println(first + " " + last);
2.获取子集合
可以使用subSet()方法获取TreeSet的一个子集合,该子集合包含从fromElement(包括)到toElement(不包括)之间的元素。如果不指定fromElement,则表示从TreeSet中的第一个元素开始。
示例代码:
立即学习“Java免费学习笔记(深入)”;
TreeSetsubSet = (TreeSet ) set.subSet(1, 2); // 结果为[1] System.out.println(subSet); TreeSet subSet2 = (TreeSet ) set2.subSet("A", "c"); // 结果为[b, C] System.out.println(subSet2);
需要注意的是,如果子集合发生改变,原始的TreeSet也会发生改变。
3.获取头部或尾部元素的子集合
可以使用headSet()方法和tailSet()方法获取TreeSet的头部(不包括toElement)或尾部(包括fromElement)元素的子集合。
示例代码:
立即学习“Java免费学习笔记(深入)”;
TreeSetheadSet = (TreeSet ) set.headSet(2); // 结果为[1] System.out.println(headSet); TreeSet tailSet = (TreeSet ) set2.tailSet("b"); // 结果为[b, C] System.out.println(tailSet);
同样需要注意的是,如果子集合发生改变,原始的TreeSet也会发生改变。
4.获取比指定元素小或大的元素
可以使用lower()方法、floor()方法、higher()方法和ceiling()方法获取比指定元素小或大的元素。
示例代码:
立即学习“Java免费学习笔记(深入)”;
Integer lower = set.lower(2); Integer floor = set.floor(2); Integer higher = set.higher(1); Integer ceiling = set.ceiling(1); // 结果为1 2 2 1 System.out.println(lower + " " + floor + " " + higher + " " + ceiling);
需要注意的是:
- lower()方法和floor()方法的区别是:lower()方法获取比指定元素小的最大元素,即小于指定元素的最大元素;而floor()方法获取比指定元素小的最近元素,即小于或等于指定元素的最近元素。
- higher()方法和ceiling()方法的区别是:higher()方法获取比指定元素大的最小元素,即大于指定元素的最小元素;而ceiling()方法获取比指定元素大的最近元素,即大于或等于指定元素的最近元素。
三、总结
本文介绍了Java中的TreeSet函数的基本操作和高级操作。可以根据实际需求选用相应的操作方法,进行有序集合的操作。需要注意的是,在使用subSet()方法、headSet()方法和tailSet()方法时,如果子集合发生改变,原始的TreeSet也会发生改变,需要牢记这一点。










