Guava的一些总结

Posted 逐客教我

tags:

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

     guava是java API蛋糕上的冰激凌(精华).

     源码包的简单说明: 
  com.google.common.annotations:普通注解类型。 
  com.google.common.base:基本工具类库和接口。 
  com.google.common.cache:缓存工具包,非常简单易用且功能强大的JVM内缓存。 
  com.google.common.collect:带泛型的集合接口扩展和实现,以及工具类,这里你会发现很多好玩的集合。 
  com.google.common.eventbus:发布订阅风格的事件总线。 
  com.google.common.hash: 哈希工具包。 
  com.google.common.io:I/O工具包。 
  com.google.common.math:原始算术类型和超大数的运算工具包。 
  com.google.common.net:网络工具包。 
  com.google.common.primitives:八种原始类型和无符号类型的静态工具包。 
  com.google.common.reflect:反射工具包。 
  com.google.common.util.concurrent:多线程工具包。

 

     现在针对每个包的类现在进行测试。

     com.google.common.base:基本工具类库和接口        

                                            Ascii:针对ASCII码的处理,比较实用的方法有:

                                                     toLowerCase(String param):将传入的param的字符处理为小写。

                                                     toUpperCase(String param):将传入的param的字符处理为大写。

                                                     truncate(CharSequence seq, int maxLength, String indicator):将seq的字符串截断衔接上indicatori字符串,使总体字符串长度等于maxLength。如果maxLength小于indicator的长度,报错IllegalArgumentException.如果maxLength大于seq的长度,则结果即为seq。

public class AsciiOwnTest {
    

     public static void main(String[] args) {
        String test=Ascii.toLowerCase("ZHONG GUO!");
        System.out.println(test);
        test=Ascii.toUpperCase("feng ge");
        System.out.println(test);
        //test=Ascii.truncate("laoshiha", 3, "....");这个会报错
        //System.out.println(test);
        test=Ascii.truncate("laoshiha", 4, "....");
        System.out.println(test);
        test=Ascii.truncate("laoshiha", 5, "....");
        System.out.println(test);
        test=Ascii.truncate("laoshiha", 6, "....");
        System.out.println(test);
        test=Ascii.truncate("laoshiha", 7, "....");
        System.out.println(test);
        test=Ascii.truncate("laoshiha", 8, "....");
        System.out.println(test);
        test=Ascii.truncate("laoshiha", 9, "....");
        System.out.println(test);
    }
}

结果如下:

zhong guo!
FENG GE
....
l....
la....
lao....
laoshiha
laoshiha

                Joiner:用于将容器中的元素进行拼接,这个还是比较实用。

                                                        on(String param):按照param来做分隔符。

                                                         join(Iterator<?> part):用来拼接迭代器中的元素,返回一个String类型

                                                         append(A extend appendable,Iterator<?> parts): 在A对象后边加拼接迭代器中的元素。

public class Test {

     public static void main(String[] args) {
         
         Joiner joiner = Joiner.on(";");
         List<String> lists = new ArrayList<String>();
         lists.add("hhaha");
         lists.add("中国龙");
         System.out.println(joiner.join(lists.iterator()));
         StringBuilder sb = new StringBuilder();
         sb.append("什么意思?");
          sb =joiner.appendTo(sb, lists);
         System.out.println(sb.toString());
         
    }
hhaha;中国龙
什么意思?hhaha;中国龙

                 Objects:实体类

                                                           equal(,):校验两个对象是否相等.

     public static void main(String[] args) {
         System.out.println(Objects.equal(1,1));
    }
     
true

                                               Splitter:按照某个字符分割一组数据。

                                                      on():分隔符.

                                                      split(CharSequence param):分割的数据.

public class Test {

     public static void main(String[] args) {
         Iterator<String> it = Splitter.on(",").split("wo,xiang,ni").iterator();
         while(it.hasNext()){
             System.out.println(it.next());
         }
    }
     
}

结果:    

wo
xiang
ni

                                               ComparisonChain:执行比较操作直至发现非零的结果,在那之后的比较输入将被忽略。

 

 class TestCompare implements Comparable<TestCompare>{
         
         private String hehe;
         
         private int heihei;

        public String getHehe() {
            return hehe;
        }
        public void setHehe(String hehe) {
            this.hehe = hehe;
        }

        @Override
        public int compareTo(TestCompare t) {
            return ComparisonChain.start()
                    .compare(this.hehe, t.hehe)
                    .compare(this.heihei, t.heihei)
                    .result();
        }

         
     }

 

                       

                                              

以上是关于Guava的一些总结的主要内容,如果未能解决你的问题,请参考以下文章

Guava Futures异步回调机制源码解析

Guava源码阅读-base-Charsets

google Guava包的ListenableFuture解析

Guava Cache源码详解

guava源码阅读——collect.Sets类

java retry(重试) spring retry, guava retrying 详解