本文主要是介绍Day27 TreeSet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Day27 TreeSet
一、概念
TreeSet
是Java集合框架中的一种实现类,它基于红黑树(Red-Black Tree)实现,用于存储有序的元素集合 。
二、应用场景
TreeSet
是一个有序集合,适用于需要元素有序排列的场景。通过合理使用TreeSet
,可以实现高效的有序集合操作,如查找最小/最大元素、查找子集等。
三、特点
TreeSet
是有序的集合,元素按照升序排列(自然顺序或自定义比较器)。- 不允许添加
null
元素。 - 支持高效的插入、删除和查找操作。
- 提供了一些有序集合操作的方法,如
first()
、last()
、headSet()
、tailSet()
等。
理解:TreeSet的特点 – 自然排序 – TreeSet会根据元素类型的不同自动选择排序规则。
四、基本用法
- 导入TreeSet类:
import java.util.TreeSet;
- 创建TreeSet对象:
TreeSet<Integer> treeSet = new TreeSet<>();
- 添加元素:
treeSet.add(5);treeSet.add(2);treeSet.add(8);
- 遍历TreeSet:
for (Integer num : treeSet) {System.out.println(num);}
- 获取第一个和最后一个元素:
int firstElement = treeSet.first();int lastElement = treeSet.last();
- 获取小于等于/大于某个值的子集:
TreeSet<Integer> subset = (TreeSet<Integer>) treeSet.headSet(5); // 获取小于5的子集
- 删除元素:
treeSet.remove(2);
- 获取TreeSet大小:
int size = treeSet.size();
代码使用:
import java.util.TreeSet;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
public class Test01 {/*** 知识点:TreeSet的使用* * 注意:TreeSet的使用和HashSet一样*/public static void main(String[] args) {//创建TreeSet集合的对象TreeSet<String> set = new TreeSet<>();//添加元素set.add("小希");set.add("小空");set.add("小丽");set.add("小光");set.add("小亚");set.add("小阳");set.add("小张");set.add("xxx");set.add("yyy");set.add("zzz");//获取元素个数int size = set.size();System.out.println("获取元素个数:" + size);//10TreeSet<String> newSet1 = new TreeSet<>();Collections.addAll(newSet1, "aaa","bbb","ccc","ccc");//利用Collections工具类给集合做批量添加set.addAll(newSet1);//将newSet1中所有的元素添加到set集合的末尾//清空集合中所有的元素//set.clear();System.out.println("判断集合中是否包含指定元素:" + set.contains("雪儿"));//trueSystem.out.println("判断集合中是否包含子集合中所有的元素:" + set.containsAll(newSet1));//trueSystem.out.println("判断集合中是否没有元素:" + set.isEmpty());//falseset.remove("小光");//根据元素删除元素set.removeAll(newSet1);//删除set中包含newset1的元素(去除交集)TreeSet<String> newSet2 = new TreeSet<>();Collections.addAll(newSet2, "xxx","yyy","zzz","zzz");//利用Collections工具类给集合做批量添加set.retainAll(newSet2);//保留set中包含newset2的元素(保留交集)//将集合转成数组Object[] objs = set.toArray();System.out.println(Arrays.toString(objs));//将集合转成数组String[] ss = new String[set.size()];set.toArray(ss);System.out.println(Arrays.toString(ss));System.out.println("--------------------------------");//遍历数据 -- foreachfor (String element : set) {System.out.println(element);}System.out.println("--------------------------------");//遍历数据 -- IteratorIterator<String> it = set.iterator();while(it.hasNext()){//判断是否有可迭代的元素String element = it.next();//返回下一个元素System.out.println(element);}}
}
这篇关于Day27 TreeSet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!