package com;
import java.util.*;
public class TestTreeMap {
//TreeMap 的get( ) containsKey() remove()完全尊重 Comparable<Academic> 的compareTo(Academic arg0)
// 0 可以判断相同 1 不相同
public static void main(String[] args) {
Map<Academic,Integer> map = new TreeMap<>(); //学生 成绩
Academic a = new Academic("Jay");
map.put(a, 123);
System.out.println(map.containsKey(a)); //false
System.out.println(map); //{Jay=123}
System.out.println(map.get(a));//null
System.out.println(map.size()); // 1
/* java.lang.ClassCastException:
* com.Academic cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at com.etoak.thread.TestTreeMap.main(TestTreeMap.java:8)
报异常 如果不实现Comparator Comparable接口
* */
}
}
class Academic implements Comparable<Academic>{ //此处也可以不加<T>
String name;
public Academic(String name) {
super();
this.name = name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
//return super.toString();
return name;
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return super.hashCode();
}
@Override
public int compareTo(Academic arg0) {
// TODO Auto-generated method stub
return 1;
/*
*
* return 0;的打印结果
* true
{Jay=123}
123
1
*
* return 1 -1 的打印结果
*
* false
{Jay=123}
null
1
* */
}
}
23、TreeMap的研究
最新推荐文章于 2024-10-06 20:16:20 发布