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方法实现"人与人"的比较.我不知道设计这个类的人为什么要这么做,暂时没有体会到有什么好处。
  

你可能感兴趣的:(TreeMap)