TreeMap类
TreeMap类
想TreeMap添加key-value,要求key必须是由同一个类创建的对象
因为要按照key进行自然排序:自然排序,定制排序
自然排序:
@Test
public void test1(){
TreeMap map = new TreeMap();
map.put(new User("Tom",23),98);
map.put(new User("Jerry",32),89);
map.put(new User("Jack",28),100);
map.put(new User("Mack",25),99);
Set set = map.entrySet();
// for (Object o : set) {
// System.out.println(o);
// }
Iterator iterator = set.iterator();
while (iterator.hasNext()){
Object object = iterator.next();
Map.Entry entry = (Map.Entry) object;
System.out.println(entry.getKey()+"---->"+entry.getValue());
}
}
定制排序:
@Test
public void test2(){
TreeMap map = new TreeMap(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
if(o1 instanceof User && o2 instanceof User ){
User u1 = (User) o1;
User u2 = (User) o2;
return Integer.compare(u1.getAge(),u2.getAge());
}
throw new RuntimeException("输入类型不匹配");
}
});
map.put(new User("Tom",29),98);
map.put(new User("Jerry",32),89);
map.put(new User("Jack",28),100);
map.put(new User("Mack",25),99);
Set set = map.entrySet();
// for (Object o : set) {
// System.out.println(o);
// }
Iterator iterator = set.iterator();
while (iterator.hasNext()){
Object object = iterator.next();
Map.Entry entry = (Map.Entry) object;
System.out.println(entry.getKey()+"---->"+entry.getValue());
}
}

浙公网安备 33010602011771号