泛型:
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()); } }