TreeSet与排序_实践应用,TreeSet显示某商品的若干信息

/**
 * class MyData
{
private String province; // 省份 例如:河北
private String date; // 生产日期(yy-mm-dd) 例如: 1989-06-18
private int sno; // 同一批产品的流水号 例如:1325
....
}

上边的结构表示了某商品的若干信息

现在想把该商品对象添加到 TreeSet中,请你来解决重复判定问题。
 */
package cn.itcast.map;
import java.util.Set;
import java.util.TreeSet;

//TreeSet要求加入的所有元素都可以相互比较大小。它通过比较过程中返回0来判定出重复的元素。
//元素间比较大小有两种处理方案:(1)可以通过元素本身的类实现Comparable来自我解决。
//(2)可以通过引用外部的专门的“裁判类”来裁决两个元素的大小关系。
public class TreeSetDemo implements Comparable{

private String province; // 省份 例如:河北
private String date; // 生产日期(yy-mm-dd) 例如: 1989-06-18
private int sno; // 同一批产品的流水号 例如:1325
public TreeSetDemo(String province,String date,int sno){
this.province=province;
this.date = date;
this.sno = sno;
}

public int compareTo(Object o) {
if(o instanceof TreeSetDemo == false){
return 0;
}
TreeSetDemo data = (TreeSetDemo) o;

int p =  this.province.compareTo(data.province);
if(p != 0){
return p;
}
int d = this.date.compareTo(data.date);
if(d!=0) return d;
return this.sno - data.sno;
}
@Override
public String toString() {

return "("+this.province+","+this.date+","+this.sno+")";
}
public static void main(String[] args){
Set<TreeSetDemo> s = new TreeSet<TreeSetDemo>();
s.add(new TreeSetDemo("安徽","1989-06-18",1245));
s.add(new TreeSetDemo("北京","1989-07-18",1245));
s.add(new TreeSetDemo("安徽","1989-07-20",1245));
s.add(new TreeSetDemo("安徽","1989-06-18",1245));
s.add(new TreeSetDemo("北京","1989-06-18",1357));
s.add(new TreeSetDemo("安徽","1989-06-18",1245));
System.out.print(s);
}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值