62,625
社区成员
发帖
与我相关
我的任务
分享

final Entry<K,V> getEntryUsingComparator(Object key) {
@SuppressWarnings("unchecked")
K k = (K) key;
Comparator<? super K> cpr = comparator;
if (cpr != null) {
Entry<K,V> p = root;
while (p != null) {
int cmp = cpr.compare(k, p.key);
if (cmp < 0)
p = p.left;
else if (cmp > 0)
p = p.right;
else
return p;
}
}
return null;
}
public int compare(String o1, String o2) {
if(map.get(o1)>map.get(o2)) return -1;
else if(map.get(o1)==map.get(o2)) return 0;
else
return 1;
}
import java.util.Comparator;
import java.util.TreeMap;
/**
* Created by 17092434 on 2019/9/16.
*/
public class TreeMapTest {
public static void main(String[] args) {
TreeMap<String,Integer> tree1 = new TreeMap<String, Integer>();
final String key1 = "A";
tree1.put(key1,65);
tree1.put("B",66);
tree1.put("C",67);
TreeMap<String,Integer> tree2 = new TreeMap<String, Integer>(new ComparatorDemo(tree1));
tree2.putAll(tree1);
System.out.println(tree1);
System.out.println(tree2);
System.out.println(tree1.get(key1));
System.out.println(tree2.get(key1));
System.out.println(tree2.values());
}
}
class ComparatorDemo implements Comparator<String>{
TreeMap<String,Integer> map = null;
public ComparatorDemo(TreeMap<String,Integer> map){
this.map = map;
}
public int compare(String o1, String o2) {
if(map.get(o1)>map.get(o2)) return -1;
return 1;
}
}
