博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TreeSet的两种排序方法
阅读量:6320 次
发布时间:2019-06-22

本文共 1469 字,大约阅读时间需要 4 分钟。

TreeSet的两种排序方法:自然排序和定义比较器,推荐使用定义比较器方法。

import java.util.*;class treeset {	public static void main(String[] args) 	{		TreeSet t = new TreeSet();//		TreeSet t = new TreeSet(new mycomparator());//第二种方法定义		t.add(new student("a1",18));		t.add(new student("a2",18));		t.add(new student("a1",18));		t.add(new student("a3",16));		t.add(new student("a4",25));		for(Iterator it = t.iterator();it.hasNext();)		{			student s = (student)it.next();			sop(s.getName()+","+s.getAge());		}	}	public static void sop(Object obj)	{		System.out.println(obj);	}}/*自然排序法 定义Comparable接口,覆盖CompareTo方法*/class student implements Comparable{	private String name;	private int age;	student(String name,int age)	{		this.name = name;		this.age = age;	}	public int compareTo(Object obj)	{		if(!(obj instanceof student))			throw new RuntimeException("不是学生");		student s = (student)obj;		if(this.age>s.age)			return 1;		if(this.age==s.age)			return this.name.compareTo(s.name);		return -1;	}	public String getName()	{		return name;	}	public int getAge()	{		return age;	}}/*定义比较器   当两种方法都存在时,以比较器为主。定义一个类,实现Comparator接口,覆盖compare方法*/class mycomparator implements Comparator{	public int compare(Object o1,Object o2)	{		student s1 = (student)o1;		student s2 = (student)o2;		int num = s1.getName().compareTo(s2.getName());		if(num ==0)		{			if(s1.getAge()>s2.getAge())				return 1;			if(s1.getAge()==s2.getAge())				return 0;			return -1;		}		return num;	}}

转载于:https://www.cnblogs.com/chaoyu/p/6436985.html

你可能感兴趣的文章
软工实践第一次作业
查看>>
windows知识
查看>>
mysql通过中间表实现数据的“部分复制”
查看>>
java.security.InvalidKeyException: Illegal key size or default parameters
查看>>
ansible-playbook-常用
查看>>
Activity的setContentView的流程
查看>>
3.Tomact部署webapp
查看>>
通用类 RemoteUpload 远程上传从其他网站复制过来的图片
查看>>
【转】Weblogic的集群
查看>>
python基础===Python 代码优化常见技巧
查看>>
java.注释类型
查看>>
五、任意输入10个int类型数据,排序输出,再找出素数
查看>>
L2-006. 树的遍历
查看>>
POJ1236 Network of Schools【强连通】
查看>>
poj3378
查看>>
ACdream1032(树形DP)
查看>>
实验0 了解和熟悉操作系统
查看>>
c#发送http请求
查看>>
NSOperation
查看>>
linux中shell变量$#,$@,$0,$1,$2的含义解释
查看>>