spb 2020-02-14
1 源码解析
1.1 源码解析1(jdk中的应用1)
1.2 源码解析2(jdk中的应用2)
1.3 源码解析3(Spring中的应用1)
1.4 源码解析4(Spring中的应用2)
java.util.Comparator(策略类)作为比较器的应用
package java.util;
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}java.util.ArrayList(策略类应用)
package java.util;
import java.lang.reflect.*;
public class Arrays {
public static <T> void sort(T[] a, Comparator<? super T> c) {
if (LegacyMergeSort.userRequested)
legacyMergeSort(a, c);
else
TimSort.sort(a, c);
}
}java.util.Comparator(策略类)作为比较器的应用
package java.util;
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}java.util.TreeMap(策略类应用)
public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, java.io.Serializable
{
/**
* The comparator used to maintain order in this tree map, or
* null if it uses the natural ordering of its keys.
*
* @serial
*/
private final Comparator<? super K> comparator;
final int compare(Object k1, Object k2) {
return comparator==null ? ((Comparable<? super K>)k1).compareTo((K)k2)
: comparator.compare((K)k1, (K)k2);
}
}