java guava工具类总结

本文深入探讨Guava工具类的实用功能,包括限流、字符串处理、数组操作及Multimap的高级用法,有效避免空指针异常,提升代码质量和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

guava为我们提供很多工具类

限流

RateLimiter这里不展开来讲解,还有一个是semaphore信号限流

字符串分割,合并

一般会使用String自带的split,但是会碰到说存在null的数值

guava提供了Splitter,还有Joiner,看下如何使用的:

        Splitter splitter = Splitter.on(",").omitEmptyStrings().trimResults();
        splitter.split("a, ,b").forEach(System.out::println);

        Joiner joiner = Joiner.on("|").skipNulls();
        System.out.println(joiner.join(Lists.newArrayList("a", null, "cc")));

这样就不需要判断空值。

int数组的各种骚操作

        System.out.println(Ints.join("!", 1, 2, 3));
        System.out.println(Ints.max(1, 2, 3, 4, 5));

join是将数组使用符号隔开,源码是将他们转成char类型,遍历一遍将符号写进去

Multimap

如果我早知道这个类就好了,为啥?

有一次我需要记录问卷的答案,如果它是多选甚至量表题(恶心的二维数组的答案)我们可以使用Multimap进行储存。而不用使用Map<String,List<String>>进行保存题号,以及答案。我们看下它怎么使用的:

        Multimap<String, String> multiMap = ArrayListMultimap.create();
        multiMap.put("1", "大鸡腿");
        multiMap.put("1", "你好呀");
        multiMap.put("2", "wtf");
        Collection<String> value=multiMap.get("1");
        value.stream().forEach(System.out::println);

输出

大鸡腿
你好呀

一般来说在map里面如果存在两个一样的key,value会被取代。但是multimap会持续叠加记录结果。

Optional

预防空指针的操作

可以看下我之前的博客

 

 

总结:我们可以看到guava在很多地方针对空指针进行相应的处理,确实我们生产中会遇到很多的空指针,我们每天都在写bug,西西

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值