Welcome everyone

每周一练(35)

每周一练 汪明鑫 46浏览 0评论

本周练习内容是RangeMap简单使用

还是guava的东西

 

<dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>21.0</version>
        </dependency>

 

com.google.common.collect.RangeMap

我们可以使用RangeMap构建一个等级积分体系

 

package pers.wmx.springbootfreemarkerdemo;

import static com.google.common.collect.BoundType.CLOSED;
import static com.google.common.collect.BoundType.OPEN;
import static com.google.common.collect.Range.range;

import com.google.common.collect.Range;
import com.google.common.collect.RangeMap;
import com.google.common.collect.TreeRangeMap;

/**
 * @author: wangmingxin03
 * @date: 2020-08-27
 */
public class TestRangeMap {

    public static void main(String[] args) {
        RangeMap<Long, Long> scoreGrade = TreeRangeMap.create();


        scoreGrade.put(range(1l, CLOSED, 10l, OPEN), 1l);  //1-10分的1级
        scoreGrade.put(range(10l, CLOSED, 20l, OPEN), 2l);
        scoreGrade.put(range(20l, CLOSED, 30l, OPEN), 3l);

        //......

        scoreGrade.put(Range.atLeast(1000l), 999l);   //1000分以上的 999级


        Long curGrade = scoreGrade.get(25l);
        System.out.println(curGrade);

        Long curGrade1 = scoreGrade.get(2000l);
        System.out.println(curGrade1);
    }

}

 

输出:

3
999

 

这样的map是不是使用起来比较舒爽

构建的时候可以带上范围,比较灵活

 

 

转载请注明:汪明鑫的个人博客 » 每周一练(35)

喜欢 (0)

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz