Java Guava常用案例

Posted 泡^泡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Guava常用案例相关的知识,希望对你有一定的参考价值。

pom依赖

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

案例

package utils;
import com.google.common.base.Joiner;
import com.google.common.base.Objects;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.List;

public class GuavaTest 
    public static void main(String[] args) 
        List<Long> longList = Lists.newArrayList(1L);
        System.out.println("============================基本数据类型转成集合框架====================================");
        System.out.println("基本数据类型转成集合框架 longList:"+GsonUtil.bean2Json(longList));
        ImmutableSet<Integer> numbers = ImmutableSet.of(1,2,3,4,5,6);
        System.out.println("=======================创建不可见集合================================");
        numbers.forEach(e-> System.out.print(e+"\\t"));
        System.out.println();
        System.out.println("=======================集合转成字符串===============================");
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add(null);
        //把集合串成一个字符串,使用"&"连接,对于null的元素,使用 "@" 来替代
        String str =  Joiner.on("&").useForNull("@").join(list);
        System.out.println("str:"+str);
        System.out.println("==============================设置连接的方式和过滤的格式===============================");
        Joiner joiner = Joiner.on(",").useForNull("HELLO WORLD");
        String result = joiner.join("hello",null,"world",null,"你好");
        System.out.println("result:"+result);
        System.out.println("==============================设置连接的方式和过滤的格式===============================");
        Joiner joiner1 = Joiner.on("-").skipNulls();
        String result1 = joiner1.join("hello",null,"world",null,"你好");
        System.out.println(result1);
        System.out.println("================================拆分器字符串分割=======================================");
        String str1 = " foo , , bar , queue , ";
        //omit省略空格
        //trimResults():从生成的分割器的结果字符串中删除前面和末尾的空格/拆了之后trim一下空格或者其他指定的字符
        //omitEmptyStrings():从结果中忽略所有空字符串
        List<String> splitList = Splitter.on(",").trimResults().omitEmptyStrings().splitToList(str1);
        splitList.forEach(e-> System.out.print(e+"\\t"));
        System.out.println();
        System.out.println("比较值:"+Objects.equal("aaa","aaa"));
        Splitter commaSplitter = Splitter.on(",");
        Splitter limitingCommaSplitter = commaSplitter.limit(3);
        System.out.println(limitingCommaSplitter.split("i,m,g,h,i,o"));
        System.out.println("========================================判断字符串是否为空=========================================");
        String input = "";
        if(Strings.isNullOrEmpty(input))
            System.out.println("输入字符串为空");
        
        System.out.println("========================================null返回空字符串否则返回原字符串=========================================");
        System.out.println("原字符串:"+Strings.nullToEmpty("sss"));
        System.out.println("空字符串:"+Strings.nullToEmpty(null));
        System.out.println("============================如果输入的是空字符串,那么就返回null,否则返回原字符串===============================");
        System.out.println("返回null:"+Strings.emptyToNull(""));
        System.out.println("原字符串:"+Strings.emptyToNull("dddd"));
        System.out.println("============================字符串对象是null或者输入的字符串内容为空,那么就返回true===============================");
        System.out.println("是null或空字符串:"+Strings.isNullOrEmpty(null));
        System.out.println("===============================================padStart()方法长度不够开始补0==============================================");
        //是字符串,一个是长度,一个是 字符
        //结果返回一个长度至少是minLength的字符串,如果string长度不够就在它前面添加若干个padChar,以使结果字符串长度为minLength
        System.out.println("padStart测试:"+Strings.padStart("3",3,'0'));
        System.out.println("===============================================padEnd()方法长度不够结尾补0==============================================");
        System.out.println("padEnd测试:"+Strings.padEnd("3.",3,'0'));
        System.out.println("===============================================repeat()输入的字符串重复拼接N次 ==============================================");
        System.out.println("repeat测试:"+Strings.repeat("aa!",3));
    

以上是关于Java Guava常用案例的主要内容,如果未能解决你的问题,请参考以下文章

java代码之美---guava 复写Object常用方法

Java基础学习总结(192)—— 谷歌 Guava 的常用工具集总结

Java常用工具类汇总 2Google核心库GUAVA(附代码示例)

Future 异步回调 大起底之 Java Future 与 Guava Future

Guava工具类使用

Java内存缓存工具实现 - Guava LoadingCache