Comparable 复写

泛型:

package com.ldd.second.shuzu;

import java.util.LinkedList;
/**
 * @function 泛型的使用
 * */
class MyLinkedList<T>{
    private LinkedList link;

    public MyLinkedList()
    {
        link = new LinkedList<T>();
    }

    public void put(T obj)
    {
        link.addFirst(obj);
    }
    public T get()
    {
        return (T) link.removeLast();//队列

    }
    public boolean isEmpty()
    {
        return link.isEmpty();
    }
    /**
     * 测试
     * */
    public static void main(String[] agrs){
        MyLinkedList<String> lss = new MyLinkedList<String>();
        for(String s:"Phasers on stun! hello world".split(" ")){
            lss.put(s);
        }
        String s;
        while(!lss.isEmpty()){
            System.out.println(lss.get());
        }
    }
}


package com.ldd.second.shuzu;

import java.util.TreeMap;
/**
 * @author liudongdong19
 * @description TreeMap 介绍
 *  Map接口派生了一个SortedMap子接口,SortedMap有一个TreeMap实现类。
 *  TreeMap是基于红黑树对TreeMap中所有key进行排序,从而保证TreeMap中所有key-value对处于有序状态。TreeMap也有两种排序方式:
 *  自然排序:TreeMap的所有key必须实现Comparable接口,而且所有key应该是同一个类的对象,否则将会抛出ClassCastException异常。
 *  定制排序:创建TreeMap时,传入一个Comparator对象,该对象负责对TreeMap中所有key进行排序。采用定制排序时不要求Map的key实现Comparable接口。
 * */
public class MyTreeMap implements Comparable  {
    int count;
    public MyTreeMap(int count)
    {
        this.count = count;
    }
    public String toString()
    {
        return "MytreeMap [count:" + count + "]";
    }
    // 根据count来判断两个对象是否相等。
    public boolean equals(Object obj)
    {
        if (this == obj)
            return true;
        if (obj != null && obj.getClass() ==MyTreeMap.class)
        {
            MyTreeMap myTreeMap = (MyTreeMap)obj;
            return myTreeMap.count == this.count;
        }
        return false;
    }
    // 根据count属性值来判断两个对象的大小。
    public int compareTo(Object obj)
    {
        MyTreeMap myTreeMap = (MyTreeMap) obj;
        return count > myTreeMap.count ? 1 :
                count < myTreeMap.count ? -1 : 0;
    }
}
class TreeMapTest
{
    public static void main(String[] args)
    {
        TreeMap tm = new TreeMap();
        tm.put(new MyTreeMap(3) , "兰花");
        tm.put(new MyTreeMap(-5) , "龟背竹");
        tm.put(new MyTreeMap(9) , "紫罗兰");
        System.out.println(tm);
        // 返回该TreeMap的第一个Entry对象
        System.out.println(tm.firstEntry());

    }
}


猜你喜欢

转载自blog.csdn.net/liudongdong19/article/details/80197078