HashMap效率较高,线程不安全。允许key和value为null;
HashTable 效率低,线程安全。不允许key和value为null;
TreeMap 是红黑二叉树的典型实现。一般排序的时候使用。并且如果key为对象类,该对象需要继承comparable接口;
package y.i.d;
import java.util.Map;
import java.util.TreeMap;
public class MyTreeMap {
public static void main(String[] args){
Map<Emp, String> tempMap= new TreeMap<>();
// tempMap.put(20, "11");
// tempMap.put(10, "22");
// tempMap.put(30, "33");
//
// for(Integer key:tempMap.keySet()) {
// System.out.println(key+":"+tempMap.get(key));
//
// }
tempMap.put(new Emp(1001,100000,"xioaming"),"xxxxxx");
tempMap.put(new Emp(1003,600000,"xioali"),"yyyyyy");
tempMap.put(new Emp(1006,68800000,"xioalin"),"zzzz");
tempMap.put(new Emp(1002,200,"xioazhu"),"000000");
for(Object key:tempMap.keySet()) {
System.out.println(key+":"+tempMap.get(key));
}
System.out.println(tempMap);
}
}
class Emp implements Comparable<Emp>{
int id;
double salary;
String name;
public String toString() {
return "name:"+name+","+"salary:"+salary+","+"name:"+name;
}
public Emp(int id, double salary, String name) {
super();
this.id = id;
this.salary = salary;
this.name = name;
}
@Override
public int compareTo(Emp o) {
if(this.salary>o.salary) {
return 1;
}else if(this.salary<o.salary) {
return -1;
}else {
if(this.id>o.id) {
return 1;
}else if(this.id<o.id) {
return -1;
}else {
return 0;
}
}
}
}