Guava总结4-杂七杂八

Splitter 和 Joiner

一个是自动分割,一个是合并.直接看代码

//用逗号隔开.
private static final String SPLITE = ",";

    private static final Joiner joiner = Joiner.on(SPLITE);

    private static final Splitter splitter = Splitter.on(SPLITE);

public void join(){
//将list自动变成以逗号分割组成的字符串
lotteryAwardMsgDO.setJuids(joiner.join(lotteryAwardMsgBO.getJuidList()));
}

public void splite{
//把一个字符串用逗号分隔开,然后自动转换成Iterable<String>
for(String juidStr: splitter.trimResults().omitEmptyStrings().split(lotteryAwardMsgDO.getJuids())){
            if(isNumeric(juidStr)){
                lotteryAwardMsgBO.addJuId(Long.parseLong(juidStr));
            }
        }
}
//比如 一个字符串是 “key1_value1:key2_value2”,可以这样
Map<String,String> map = Splitter.on(":").trimResults().withKeyValueSeparator("_").split("key1_value1:key2_value2");

 

 

列表的自动类型转换

比如将List<String> 类型转换成List<Long>

直接看例子.

@Override
        public List<BackCatClientTO> getChildren() {
            List<BackCategoryTO> children = backCategoryForest.getChildBackCats().get(categoryId);
            if(children == null || children.isEmpty()) return Collections.EMPTY_LIST;
            List<Long> categoryIds = Lists.transform(children,new Function<BackCategoryTO, Long>() {
                @Nullable
                @Override
                public Long apply(@Nullable BackCategoryTO backCategoryTO) {
                    return backCategoryTO.getCategory();
                }
            });
            return BackCatClientServiceImpl.this.build(categoryIds);
        }

 

筛选

比如某一个List中,把一些不符合要求的数据给筛选掉,直接看例子

注意,这个方法是非线程安全的.

Iterables.removeIf(frontCats, new Predicate<JuCategoryTO>() {
				@Override
				public boolean apply(@Nullable JuCategoryTO input) {
					return input.isHidden();
				}
			});

 

排序

直接看代码

Collections.sort(juCategoryTOs,new Comparator<JuCategoryTO>() {
            @Override
            public int compare(JuCategoryTO o1, JuCategoryTO o2) {
                //大的返回1,小的返回-1 .
                if(o1.getIndex() > o2.getIndex()){
                    return 1;
                } else if(o1.getIndex() < o2.getIndex()){
                    return -1;
                }else {
                    return 0;
                }
            }
        });

 双向map

public class VisitTypeMachine {

    private static final  BiMap<Integer,String> visitType2Name = HashBiMap.create();

    static {
        visitType2Name.put(1,"淘宝类目");
        visitType2Name.put(2,"直接访问");
        visitType2Name.put(3,"淘宝搜索");
        visitType2Name.put(4,"淘宝站内其他");
        visitType2Name.put(5,"店内浏览");
        visitType2Name.put(6,"QQ空间");
        visitType2Name.put(7,"阿里旺旺非广告");
        visitType2Name.put(8,"店铺收藏");
        visitType2Name.put(9,"购物车");
        visitType2Name.put(10,"淘宝客");
        visitType2Name.put(11,"淘宝站外其他");
        visitType2Name.put(12,"我的淘宝");
        visitType2Name.put(13,"直通车");
        visitType2Name.put(99,"未纳入");

    }

    public static String getNameByType(Integer type){
        return visitType2Name.get(type);
    }

    public static Integer getTypeByName(String name){
        Integer integer = visitType2Name.inverse().get(name);
        return integer;
    }
}

 

TreeRangeMap

经常会有一些需求,比如 0到60分是不及格,60到85分是良 85到100是优。如果不想写一堆if else 就可以试试用 TreeRangeMap

hashRangeMap = TreeRangeMap.create(); 
            hashRangeMap.put(Range.atMost(83268L), 0);
            hashRangeMap.put(Range.openClosed(83268L, 1998816L), 1);
            hashRangeMap.put(Range.openClosed(1998816L, 170404392L), 10);
            hashRangeMap.put(Range.openClosed(170404392L, 5899180011L), 100);
            hashRangeMap.put(Range.openClosed(5899180011L, 8184000062L), 300);
            hashRangeMap.put(Range.openClosed(8184000062L, 43657112106L), 700);
            hashRangeMap.put(Range.openClosed(43657112106L, 136910372737L), 1500);
            hashRangeMap.put(Range.openClosed(136910372737L, 698513762858L), 4000);
            hashRangeMap.put(Range.openClosed(698513762858L, 1396960220484L), 6000);
            hashRangeMap.put(Range.greaterThan(1396960220484L), 8000);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值