floorEntry()
floorEntry()方法和ceilingEntry()方法相对,找到第一个小于或等于指定key的Map.Entry
场景:按照名次对进入排行榜的用户进行积分奖励,前三名对应相应名次,4-10对应第四名,5-20对应第五名,依次类推。可以使用floorEntry()方法进行范围查找
private static NavigableMap<Integer, Integer> rankingMap = Maps.newTreeMap();
static {
rankingMap.put(1,1); //ranking 1 ->1
rankingMap.put(2,2); //ranking 2 ->2
rankingMap.put(3,3); //ranking 3 -> 3
rankingMap.put(4,4); //ranking 4-10 ->4
rankingMap.put(11,5); //ranking 11-20 ->5
rankingMap.put(21,6); //ranking 21-30 ->6
rankingMap.put(31,7); //ranking >= 31 ->7
}
public static void main(String[] args) {
System.out.println(rankingMap.floorEntry(200).getValue());
}