前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA Set集合 TreeSet

JAVA Set集合 TreeSet

作者头像
用户2965768
发布2019-03-05 11:16:43
7780
发布2019-03-05 11:16:43
举报
文章被收录于专栏:wymwym

想要实现Set集合有序,被排序的对象需要实现Compareable接口

定义类Person

代码语言:javascript
复制
public class Person implements Comparable{
	int num;
	int age;
	String name;
	
	//创建构造方法
	public Person(int num, int age, String name) {
		super();
		this.num = num;
		this.age = age;
		this.name = name;
	}

	@Override
	public String toString() {
		return "Person [num=" + num + ", age=" + age + ", name=" + name + "]";
	}

	public int compareTo(Object object){
		Person person;
		if(object instanceof Person){
			person = (Person)object;//如果传入参数是Person的实例,则强制转换
		}else {
			return -1;
		}
		int diff = person.age - age;
		if(diff!=0)
		return diff/Math.abs(diff);
		
		return 0;
	}
	
}

 注意:如果加入null会有nullpointException空指针异常

因为每加入一个对象自动调用compareTo方法,使用TreeSet不能加入空指针

代码语言:javascript
复制
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;


public class guess{
	public static void main(String[] args) {
		Person person1 = new Person(1, 20, "张三");
		Person person2 = new Person(2, 10, "阿财");
		Person person3 = new Person(3, 27, "小刘");
		
		Set aSet = new TreeSet();
		
		aSet.add(person1);
		aSet.add(person2);
		aSet.add(person3);
                //aSet.add(null);
		
		Iterator iterator = aSet.iterator(); 
		while(iterator.hasNext()){
			System.out.println(iterator.next());
		}
		
	}

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年01月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档