首页 > 技术文章 > Java TreeMap 初探

jjunior 2020-04-09 21:48 原文

package myTest;

import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;
/**
*
* @author user
*
*/

public class MoneyHouse implements Comparable<MoneyHouse>{

private int seq;
private int money;

public int getSeq() {
return seq;
}
public void setSeq(int seq) {
this.seq = seq;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
@Override
public String toString() {
return this.money + "-" + this.seq;
}

@Override
public int compareTo(MoneyHouse o) {
if(this.money > o.getMoney()) {
return 1;
}else if(this.money < o.getMoney()) {
return -1;
}
return 0;
};


public static void main(String[] args) {
Map<MoneyHouse,Integer> moneyMap = new TreeMap<MoneyHouse,Integer> ();
for(int i=1; i<=10; i++) {
int v = (int)(Math.random()*100);
MoneyHouse mh = new MoneyHouse();
mh.setSeq(i);
mh.setMoney(v);
moneyMap.put(mh,i);
System.out.println( mh.toString());
}
System.out.println("=======treeMap存值后会基于key自动排序========");
for(Entry<MoneyHouse,Integer> entry:moneyMap.entrySet()) {
System.out.println(entry.getKey().toString());
}

System.out.println("=======treeMap逆序========");
moneyMap = ((TreeMap)moneyMap).descendingMap();
for(Entry<MoneyHouse,Integer> entry:moneyMap.entrySet()) {
System.out.println(entry.getKey().toString());
}
}
}

 

 

运行结果:-------------------------------------------------

45-1
26-2
24-3
43-4
55-5
18-6
16-7
88-8
53-9
35-10
=======treeMap存值后会基于key自动排序========
16-7
18-6
24-3
26-2
35-10
43-4
45-1
53-9
55-5
88-8
=======treeMap逆序========
88-8
55-5
53-9
45-1
43-4
35-10
26-2
24-3
18-6
16-7

推荐阅读