`

guava

    博客分类:
  • java
 
阅读更多

主要翻译GUAVA的介绍

  1. 过滤数据,数据验证器
  • 通常
    public Car(Engine engine) {
    this.engine = checkNotNull(engine); // NPE
    }
    public void drive(double speed) {
    checkArgument(speed > 0.0,
    "speed (%s) must be positive", speed); // IAE
    checkState(engine.isRunning(),
    "engine must be running"); // ISE
    ...
    }
     在上面需要检查 speed,engine
  • return Objects.toStringHelper(this)
    .add("name", name)
    .add("id", userId)
    .add("pet", petName) // petName is @Nullable!
    .omitNullValues()
    .toString();
    // "Person{name=Kurt Kluever, id=42}"
    Or without .omitNullValues():  omitNullValues()函数可以过滤空的数据
    // "Person{name=Kurt Kluever, id=42, pet=null}"   
    

这个特性,很适合做数据清洗,要比apache的validator方便;validator可以是一个事件驱动方式工作,而guava更像是annotation方式工作。

 

2. String JOIN,Split

 

Joiner concatenates strings using a delimiter
● throws a NPE on null objects, unless:
○ .skipNulls()
○ .useForNull(String)
private static final Joiner JOINER =
Joiner.on(", ").skipNulls();
JOINER.join("Kurt", "Kevin", null, "Chris");
// yields: "Kurt, Kevin, Chris"

 这join 不如apache的collections和apache的commons-lang库,apache的join和split更强大。唯一区别是,apache仍然是原有的JAVA风格;而这个像脚本风格,或者注释风格。

 

  1. Functional Programming

Function<F, T>
○ one way transformation of F into T
○ T apply(F input)
○ most common use: transforming collections (view)
Predicate<T>
○ determines true or false for a given T
○ boolean apply(T input)
○ most common use: filtering collections (view)

 

这个也与apache common中的factory库相似

private static final Predicate<Client> ACTIVE_CLIENT =
new Predicate<Client>() {
public boolean apply(Client client) {
return client.activeInLastMonth();
}
};
// Returns an immutable list of the names of
// the first 10 active clients in the database.
FluentIterable.from(database.getClientList())
.filter(ACTIVE_CLIENT)
.transform(Functions.toStringFunction())
.limit(10)
.toList();

 

FluentIterable API
● Chaining (returns FluentIterable)
○ skip
○ limit
○ cycle
○ filter, transform
● Querying (returns boolean)
○ allMatch, anyMatch
○ contains, isEmpty
● Converting
○ to{List, Set, SortedSet}
○ toArray
● Extracting
○ first, last, firstMatch (returns
Optional<E>)
○ get (returns E)

 

 

  1. TABLE

这个不错

Table<R, C, V>
A "two-tier" map, or a map with two keys (called the "row key"
and "column key").
● can be sparse or dense
○ HashBasedTable: uses hash maps (sparse)
○ TreeBasedTable: uses tree maps (sparse)
○ ArrayTable: uses V[][] (dense)
● many views on the underlying data are possible
○ row or column map (of maps)
○ row or column key set
○ set of all cells (as <R, C, V> entries)
● use instead of Map<R, Map<C, V>>

分享到:
评论

相关推荐

    guava-18.0(guava-18.0.jar和guava-18.0-sources.jar)

    Guava是Google开发的一个核心库,它为Java平台提供了许多实用工具类,涵盖了集合、并发、I/O、字符串处理、数学运算等多个方面。这个压缩包包含的是Guava库的18.0版本,分为两个部分:`guava-18.0.jar`和`guava-18.0...

    guava-17.0-API文档-中文版.zip

    赠送jar包:guava-17.0.jar; 赠送原API文档:guava-17.0-javadoc.jar; 赠送源代码:guava-17.0-sources.jar; 赠送Maven依赖信息文件:guava-17.0.pom; 包含翻译后的API文档:guava-17.0-javadoc-API文档-中文...

    guava-18.0-API文档-中文版.zip

    赠送jar包:guava-18.0.jar; 赠送原API文档:guava-18.0-javadoc.jar; 赠送源代码:guava-18.0-sources.jar; 包含翻译后的API文档:guava-18.0-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:...

    guava-23.0-API文档-中文版.zip

    赠送jar包:guava-23.0.jar; 赠送原API文档:guava-23.0-javadoc.jar; 赠送源代码:guava-23.0-sources.jar; 赠送Maven依赖信息文件:guava-23.0.pom; 包含翻译后的API文档:guava-23.0-javadoc-API文档-中文...

    guava-11.0.2-API文档-中文版.zip

    赠送jar包:guava-11.0.2.jar; 赠送原API文档:guava-11.0.2-javadoc.jar; 赠送源代码:guava-11.0.2-sources.jar; 赠送Maven依赖信息文件:guava-11.0.2.pom; 包含翻译后的API文档:guava-11.0.2-javadoc-API...

    guava-20.0-API文档-中文版.zip

    赠送jar包:guava-20.0.jar; 赠送原API文档:guava-20.0-javadoc.jar; 赠送源代码:guava-20.0-sources.jar; 赠送Maven依赖信息文件:guava-20.0.pom; 包含翻译后的API文档:guava-20.0-javadoc-API文档-中文...

    guava-19.0 jar和sources

    Guava是Google开发的一个核心库,它为Java平台提供了许多实用工具类,极大地丰富了标准库的功能。在Java开发中,Guava库被广泛使用,因为它包含了大量的集合框架、并发支持、缓存机制、字符串处理、I/O操作等多个...

    guava-20.0-API文档-中英对照版.zip

    赠送jar包:guava-20.0.jar; 赠送原API文档:guava-20.0-javadoc.jar; 赠送源代码:guava-20.0-sources.jar; 赠送Maven依赖信息文件:guava-20.0.pom; 包含翻译后的API文档:guava-20.0-javadoc-API文档-中文...

    google开源项目guava.jar包

    谷歌的Guava库是Java开发中的一个非常重要的开源项目,它提供了一系列的高效、实用的工具类,大大简化了常见的编程任务。Guava的核心特性包括集合框架、缓存、原生类型支持、并发库、字符串处理、I/O操作等。这个...

    guava-r07.zip

    Guava是Google开发的一个Java库,它包含许多Google的核心库,如集合、缓存、并发库、原生类型支持、字符串处理、I/O等。Guava的R07版本是该库的一个特定发行版,可能包含了截止到那个版本的一些新特性、改进和错误...

    guava-28.2-jre-API文档-中文版.zip

    赠送jar包:guava-28.2-jre.jar; 赠送原API文档:guava-28.2-jre-javadoc.jar; 赠送源代码:guava-28.2-jre-sources.jar; 赠送Maven依赖信息文件:guava-28.2-jre.pom; 包含翻译后的API文档:guava-28.2-jre-...

    guava-16.0.1-API文档-中文版.zip

    赠送jar包:guava-16.0.1.jar; 赠送原API文档:guava-16.0.1-javadoc.jar; 赠送源代码:guava-16.0.1-sources.jar; 赠送Maven依赖信息文件:guava-16.0.1.pom; 包含翻译后的API文档:guava-16.0.1-javadoc-API...

    guava-31.1-jre.jar

    guava

    guava-30.0-jre-API文档-中文版.zip

    赠送jar包:guava-30.0-jre.jar; 赠送原API文档:guava-30.0-jre-javadoc.jar; 赠送源代码:guava-30.0-jre-sources.jar; 赠送Maven依赖信息文件:guava-30.0-jre.pom; 包含翻译后的API文档:guava-30.0-jre-...

    guava-27.0.1-jre-API文档-中文版.zip

    赠送jar包:guava-27.0.1-jre.jar; 赠送原API文档:guava-27.0.1-jre-javadoc.jar; 赠送源代码:guava-27.0.1-jre-sources.jar; 赠送Maven依赖信息文件:guava-27.0.1-jre.pom; 包含翻译后的API文档:guava-...

    Guava-Cache本地缓存案例代码

    Guava Cache是Google Guava库中的一个强大特性,它提供了高效的本地缓存解决方案,用于存储经常访问的数据,以减少对远程服务或计算的调用,从而提高应用性能。本案例代码将详细介绍Guava Cache的使用,包括缓存的...

    guava-26.0-jre.zip

    Guava是Google为Java平台设计并维护的一个开源库,它提供了许多高级功能和实用工具,极大地增强了Java开发的效率和代码质量。Guava 26.0-jre版本是针对Java运行时环境(JRE)优化的一个特定版本,旨在更好地支持Java...

    guava-25.0-jre-API文档-中文版.zip

    赠送jar包:guava-25.0-jre.jar; 赠送原API文档:guava-25.0-jre-javadoc.jar; 赠送源代码:guava-25.0-jre-sources.jar; 赠送Maven依赖信息文件:guava-25.0-jre.pom; 包含翻译后的API文档:guava-25.0-jre-...

    guava-30.1.1-jre-API文档-中文版.zip

    赠送jar包:guava-30.1.1-jre.jar; 赠送原API文档:guava-30.1.1-jre-javadoc.jar; 赠送源代码:guava-30.1.1-jre-sources.jar; 赠送Maven依赖信息文件:guava-30.1.1-jre.pom; 包含翻译后的API文档:guava-30.1...

    guava-30.1.1-jre-API文档-中英对照版.zip

    赠送jar包:guava-30.1.1-jre.jar; 赠送原API文档:guava-30.1.1-jre-javadoc.jar; 赠送源代码:guava-30.1.1-jre-sources.jar; 赠送Maven依赖信息文件:guava-30.1.1-jre.pom; 包含翻译后的API文档:guava-30.1...

Global site tag (gtag.js) - Google Analytics