16.4 TreeSet
2016-06-05 13:53
211 查看
TreeSet
TreeSet要注意的事项:
1、往TreeSet添加元素的时候,如果元素本身具备了自然顺序的特性,那么就按元素自然顺序的特性进行排序存储。
2、往TreeSet添加元素的时候,如果元素本身不具备了自然顺序的特性,那么该元素所属的类必须要实现Comparable接口,把元素的比较规则定义在compareTo(T o )上。
import java.util.HashSet;
import java.util.Random;
import java.util.Scanner;
import java.util.TreeSet;
import javassist.bytecode.Descriptor.Iterator;
class Person implements Comparable
{
String name;
int id;
int salary;
Person(String name,int id,int salary)
{
this.id = id;
this.name = name;
this.salary = salary;
}
public String toString()
{
return id+" "+name+" "+salary;
}
@Override
public int compareTo(Object o) {
// TODO Auto-generated method stub
Person p = (Person)o;
return this.salary-p.salary;
}
}
public class wu
{
public static void main(String [] args)
{
Scanner scanner = new Scanner(System.in);
TreeSet li = new TreeSet();
li.add(new Person("张三",11,100));
li.add(new Person("丽水",12,20));
li.add(new Person("张三",11,40));
li.add(new Person("美丽",14,46));
System.out.print(li);
}
}
TreeSet要注意的事项:
1、往TreeSet添加元素的时候,如果元素本身具备了自然顺序的特性,那么就按元素自然顺序的特性进行排序存储。
2、往TreeSet添加元素的时候,如果元素本身不具备了自然顺序的特性,那么该元素所属的类必须要实现Comparable接口,把元素的比较规则定义在compareTo(T o )上。
import java.util.HashSet;
import java.util.Random;
import java.util.Scanner;
import java.util.TreeSet;
import javassist.bytecode.Descriptor.Iterator;
class Person implements Comparable
{
String name;
int id;
int salary;
Person(String name,int id,int salary)
{
this.id = id;
this.name = name;
this.salary = salary;
}
public String toString()
{
return id+" "+name+" "+salary;
}
@Override
public int compareTo(Object o) {
// TODO Auto-generated method stub
Person p = (Person)o;
return this.salary-p.salary;
}
}
public class wu
{
public static void main(String [] args)
{
Scanner scanner = new Scanner(System.in);
TreeSet li = new TreeSet();
li.add(new Person("张三",11,100));
li.add(new Person("丽水",12,20));
li.add(new Person("张三",11,40));
li.add(new Person("美丽",14,46));
System.out.print(li);
}
}
相关文章推荐
- 小型web服务器
- 正则表达式单行、多行模式简介(使用说明)
- 16.3 HashSet的原理
- 新闻发布系统——网站发布
- Nginx tcp反向代理工作原理简述
- 跟着小白浅谈"自动装箱及自动拆箱"
- 単例设计模式
- C++第七次上机实验
- 3.3语法分析-分析树与二义性
- JDBC连接MYSQL
- Eclipse 代码自动补全设置
- window使用内存泄漏检测工具Leakdiag记录
- 视频编码器工作流程
- 16.2 vector
- 三层架构
- 男人来自火星,女人来自金星(摘要)
- 百度云引擎BAE连接微信开发平台TOKEN验证失败
- 16.1 扑克牌
- Linux内核线程kernel thread详解--Linux进程的管理与调度(十)
- 虚树