我有一张地图

    TreeMap<Integer, Float> matrixMap = new TreeMap<Integer, Float>();


结果是

{12=0.4, 24=0.63, 36=0.86, 48=1.12, 60=1.39, 72=1.67, 84=1.98, 96=2.31, 108=3.3, 120=3.84, 132=4.4, 144=5.0, 156=5.62, 168=6.28, 180=6.97, 192=7.34,
204=7.74, 216=8.15, 228=8.07, 240=8.33}


现在,我想获取键25的值。理想情况下,结果中不存在25。因此,我想获得24和36的值。

duration  = 25


我能够获得36的值,但是我如何获得36的前身。

for(Map.Entry<Integer, Float> entry : matrixMap.entrySet()) {
    if(duration  < entry.getKey())
    {
        max = entry.getValue();
        break;
    }

}


如何也获得前一立即值(在这种情况下为24键)?

有任何想法吗

最佳答案

要获取第一个键的值> = 25:

matrixMap.tailMap(25).values().next()


要么:

matrixMap.get(matrixMap.tailMap(25).firstKey())


要获取第一个键的值
matrixMap.get(matrixMap.headMap(25).lastKey())

08-28 23:58