java回顾之TreeSet

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java回顾之TreeSet相关的知识,希望对你有一定的参考价值。

上回了解完了HashSet,再来了解它一个朋友TreeSet,它可以确保元素出于排序状态

TreeSet支持两种排序方法:自然排序和定制排序。
自然排序即默认排序,将元素由小到大排序,他会调用元素的CompareTo(Object obj)来比较元素间的大小,然后按升序排列。
所以它实现了Comparable接口。例如obj1.compareTo(obj2),返回0代表相等,返回正数>,返回负数<。
如果试图把一个对象添加到TreeSet中,则对象类必须实现Comparable接口。
例如

class Test
{
	
}

public class Err {

	public static void main(String[] args)
	{
		TreeSet tSet=new TreeSet<>();
		tSet.add(new test());//第一行只有一个元素,所以没有比较,暂时没出现错误
		tSet.add(new test());//第二行,由于没实现Comparable接口,所以没法比较,所以这行会出现错误
		
		
		TreeSet newTreeSet=new TreeSet<>();
		newTreeSet.add(new String("abc"));
		newTreeSet.add(new Date());//添加了不同类型的数据,所以虽然两个类都实现了Comparable接口,但是还是无法比较,所以会出错
	}
}

  同时加入集合的应该是同一类的对象,否则会发生异常

  



以上是关于java回顾之TreeSet的主要内容,如果未能解决你的问题,请参考以下文章

java集合Set集合之TreeSet详解

Java 之 TreeSet集合

死磕 java集合之TreeSet源码分析

java TreeSet的排序之定制排序

Java容器之TreeSet源码解析

《java入门第一季》之集合框架TreeSet存储元素自然排序以及图解