TreeMap泛型类

举例:有10个硬盘,有两个重要的属性:价格和容量.编写一个应用程序,使用TreeMap<K, V>类,分别按照价格和容量排序输出10个硬盘的详细信息.
1
定义"值"
class Disk{类体}
2
定义Key:
class Key_ implements Comparable
{
Key_(int number){this.number=number;}
public int compareTo(Object b)
{比较};
}
3
class Main
{
节点定义;
TreeMap<Key_,Disk> tree=new TreeMap<Key_,Disk>(new Comparator<Disk>()
{
public int compare(Disk a,Disk b)
{
return a.compareTo(b);
{
}
tree.put(new Key(d1.Price),d1);//存放节点,此时,tree会根据Key自动排序
Collection<Disk> collection=tree.values();
Iterator<Disk> iter=collection.iterator();
while(iter.hasNext())
{
显示所要的信息;
}
}

体会:
  有点需要注意, 我本来想在Key_中同时实现 Comparable和Comparator<E>两个接口, 因为本人最看不惯烦琐的东西,总想把复杂的问题简单化.但其实是不行的, 因为Comarable接口的compareTo方法是本对象与传进来的对象的比较,而Comparator<E>接口的compare方法则是传进来的两个同类型对象的比较.于是先得用CompareTo方法实现"人与我"的比较,再用compare方法实现"人与人"的比较.我不知道设计这个类的人为什么要这么做,暂时没有体会到有什么好处。
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值