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();
        }

     }
时间: 2024-08-25 20:35:24

Guava的一些总结的相关文章

Guava:好用的java类库 学习小记

基础功能 google guava中定义的String操作 在google guava中为字符串操作提供了很大的便利,有老牌的判断字符串是否为空字符串或者为null,用指定字符填充字符串,以及拆分合并字符串,字符串匹配的判断等等. 1. 使用com.google.common.base.Strings类的isNullOrEmpty(input)方法判断字符串是否为空 1 //Strings.isNullOrEmpty(input) demo 2 String input = ""; 3

学习笔记(二) 瓜娃(guava)的API快速熟悉使用

1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection API Guava Basic Utilities IO API Cache API 2,为神马选择瓜娃? 瓜娃是java API蛋糕上的冰激凌(精华) 高效设计良好的API. 被google的开发者设计,实现和使用. 遵循高效的java这本书的好的语法实践. 使代码更刻度,简洁,简单. 使用java 1.5的特性, 流行的API,动态的开发 它提供了大量相关的应用

开源介绍:Google Guava、Google Guice、Joda-Time

一.Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就开启优雅Java编程学习之旅! 项目相关信息: 官方首页:http://code.googl

guava Splitter 与java 内置的string的split 方法有什么区别.

java内置的会忽略空内容,guava Splitter不会忽略.或者可以自由选择的忽略. /** * {@code Splitter}和{@code Joiner} 这两个对于map的相反的操作,在web框架例如spring mvc中用到过. * * 对于get url后面的参数和pos form中前端参数的连接和后端的拆分都有用到.每个框架的处理思维是一样的. * * @author doctor * * @since 2015年3月14日 下午9:00:17 */ ............

Guava源码学习(二)Ordering

基于版本:Guava 22.0 Wiki:Ordering 0. Ordering简介 Guava的Ordering提供了链式风格的比较器的实现,我们可以用Ordering轻松构建复杂的比较器. 1. 类图 这张类图不完全,实际上Ordering有十几个子类,这些子类共同提供了复杂的功能. 2. 设计思路 Ordering是继承于java.util.Comparator接口的抽象类,它的十几个子类都实现了compare与equals方法,这些子类可以实现基本的排序功能. 通过链式调用,可以将这些

guava cache与spring集成

缓存的背景 缓存,在我们日常开发中是必不可少的一种解决性能问题的方法.简单的说,cache 就是为了提升系统性能而开辟的一块内存空间.在cpu进行计算的时候, 首先是读取寄存器,然后内存,再是硬盘.由于寄存器容量很小,不太适合存储我们需要快速读取的数据,放在硬盘中话,效率太低,所以大多数人将一些静态资源或者不经常修改的数据放在内存中. 缓存的作用 缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用.在日常开发的很多场合,由于受限于硬盘 IO的性能或者我们自身业务系统的数

guava学习--集合2

Table: 当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map<FirstName, Map<LastName, Person>>来实现.为此Guava提供了一个新的集合类型-Table集合类型,来支持这种数据结构的使用场景.Table支持"row"和"column",而且提供多种视图. Table<String, Integer, String> aTable = HashBasedTable.crea

guava学习--Supplier Suppliers

转载:http://www.cnblogs.com/jun-ma/p/4850591.html Guava Suppliers的主要功能是创建包裹的单例对象,通过get方法可以获取对象的值.每次获取的对象都为同一个对象,但你和单例模式有所区别,Suppliers具备更加迷人的色彩. Lazy初始化,Supplier wrapped的对象只在第一次get时候会被初始化 public void should_init_the_supplier_wrapped_object_when_get_obje

缓存框架Guava Cache部分源码分析

在本地缓存中,最常用的就是OSCache和谷歌的Guava Cache.其中OSCache在07年就停止维护了,但它仍然被广泛的使用.谷歌的Guava Cache也是一个非常优秀的本地缓存,使用起来非常灵活,功能也十分强大,可以说是当前本地缓存中最优秀的缓存框架之一.之前我们分析了OSCache的部分源码,本篇就通过Guava Cache的部分源码,来分析一下Guava Cache的实现原理. 在分析之前,先弄清数据结构的使用.之前的文章提到,OSCache使用了一个扩展的HashTable,作

Guava: 事件总线EventBus

EventBus 直译过来就是事件总线,它使用发布订阅模式支持组件之间的通信,不需要显式地注册回调,比观察者模式更灵活,可用于替换Java中传统的事件监听模式,EventBus的作用就是解耦,它不是通用的发布订阅系统,也不能用于进程间通信.可用于Android的EventBus库主要有这几个:Google出品的Guava,Guava是一个庞大的库,EventBus 只是它附带的一个小功能,因此实际项目中使用并不多.用的最多的是greenrobot/EventBus,这个库的优点是接口简洁,集成方