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

本文共 1419 字,大约阅读时间需要 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;	}}

转载地址:http://wiana.baihongyu.com/

你可能感兴趣的文章
GIT 常见的使用指令
查看>>
ORACLE字符串函数
查看>>
Hibernate基础知识介绍
查看>>
nuttx学习-0:模拟安装
查看>>
写出3个使用this的典型应用
查看>>
Triangles
查看>>
BZOJ 1064 假面舞会
查看>>
mysql 优化
查看>>
java之collection总结
查看>>
提升控件绘制速度
查看>>
封装自用的脚本ajax.js
查看>>
SQL左、右、内、全连接
查看>>
Ehcache 整合Spring 使用页面、对象缓存
查看>>
哈哈哈哈哈哈哈
查看>>
wordpress学习四: 一个简单的自定义主题
查看>>
04文件操作1
查看>>
Asp.net mvc 3 - JSONResult return array
查看>>
Spring MVC - log4j 配置
查看>>
c# WF 第6节 MDI窗体
查看>>
杂七杂八
查看>>