Java 核心技术(第八版)卷1:基础知识:例13-3P576TreeSetTest

//本程序创建了两个item 对象的树集,

// 第一个按照部件编号排序,这是item对象的默认排序顺序,
// 第二个使用一个定制的比较器来按照描述信息排序 

import java.util.*;
//本程序创建了两个item 对象的树集,第一个按照部件编号排序,这是item对象的默认排序顺序,
//                           第二个使用一个定制的比较器来按照描述信息排序
public class TreeSetTest {
    public static void main(String[] args)
    {
        SortedSet<Item> parts=new TreeSet<Item>();
        parts.add(new Item("Toaster",1234));
        parts.add(new Item("Widget",1162));
        parts.add(new Item("Modem",9912));
        System.out.println("sort by partNumber :"+parts);

        SortedSet<Item> sortByDescription=new TreeSet<Item>(new Comparator<Item>() {
            @Override
            public int compare(Item a, Item b) {
                String descrA=a.getDescription();
                String descrB=b.getDescription();
                return descrA.compareTo(descrB);
            }
        });
        sortByDescription.addAll(parts);
        System.out.println("sort by Description:"+sortByDescription);

    }
}
//An item with a description and a part number
class Item implements Comparable<Item>
{
    //构建一个 item
    public Item(String aDescription,int aPartNumber)
    {
        description=aDescription;
        partNumber=aPartNumber;

    }
    //get description of the item
    public String getDescription()
    {
        return description;
    }
    public String toString()
    {
        return "description="+description+",partNumber="+partNumber+"]";
    }
    public boolean equals(Object otherObject)
    {
        if(this==otherObject)return true;
        if(otherObject==null)return false;
        if(getClass()!=otherObject.getClass())return false;
        Item other=(Item)otherObject;
        return description.equals(other.description)&&partNumber==other.partNumber;
    }
    public int hashCode()
    {
        return 13*description.hashCode()+17*partNumber;
    }
    public int compareTo(Item other)
    {
        return partNumber-other.partNumber;
    }


    private String description;
    private int partNumber;

}

运行结果:

sort by partNumber :[description=Widget,partNumber=1162], description=Toaster,partNumber=1234], description=Modem,partNumber=9912]]
sort by Description:[description=Modem,partNumber=9912], description=Toaster,partNumber=1234], description=Widget,partNumber=1162]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值