Guava
神蜗牛
刚入行的萌新渣硕,想与各位大佬一起学习。
展开
-
Guava学习之Basic Utilities ——Optional安全的使用或避免null
"Null sucks." -Doug Lea"I call it my billion-dollar mistake." - Sir C. A. R. Hoare, on his invention of the null reference随意使用null会导致各种千奇百怪的错误。 通过对Google代码库的研究,我们发现95%的集合都不应该包含空值,传入null时快速失败比接受...翻译 2018-08-01 19:05:31 · 266 阅读 · 0 评论 -
Guava学习之ListenableFuture
ListenableFuture并发是一个很难的问题,但是通过使用强大的和简单的抽象,它被大大简化了。方便起见, Guava 继承了JDK的 Future 接口 实现了 ListenableFuture.我们强烈建议在代码中总是使用 ListenableFuture 代替 Future, 因为:大部分的 Futures 方法都需要它. 这比之后改变为 ListenableFuture...翻译 2018-11-02 17:12:55 · 843 阅读 · 0 评论 -
Guava学习之Functional Utilities
Functional UtilitiesCaveatsJava 8 包含 java.util.function 与 java.util.stream 包, 它取代了 Guava 的函数式编程用于该语言级别的项目。虽然Guava 的函数式工具可以再Java 8之前的版本上使用,但是没有Java 8的函数式编程就需要使用笨拙且冗长的匿名类。过度使用Guava的功能性编程语句会导致冗长、...翻译 2018-10-24 19:32:58 · 227 阅读 · 0 评论 -
Guava学习之Caches
CachesExampleLoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterWrite(10, TimeUnit.MINUTES) .removalListener(MY...翻译 2018-10-23 19:45:55 · 381 阅读 · 0 评论 -
Guava学习之GraphsExplained
Graphs, ExplainedGuava的 common.graph 是一个用于建模图形结构数据的库,即实体和它们之间的关系。例子包括网页和超链接;科学家和他们写的论文;机场和它们之间的路线;以及人们和他们的家庭关系(家谱)。它的目的是提供一种通用的和可扩展的语言来处理这些数据。Definitions图由一组节点(也称为顶点)和一组边(也称为链接或弧)组成;每个边将节点彼此连接。入...翻译 2018-10-16 20:16:37 · 1526 阅读 · 0 评论 -
Guava学习之Collections ——Collection Helpers
Collection HelpersIntroduction有时候需要写自己的扩展集合类。你可能需要当给list中添加元素的时候加入特殊的行为,或者想写一个由数据库查询支持的Iterable 。Guava 提供的工具类使得你在做这些任务的时候更容易。 (毕竟,我们自己的业务扩展了集合框架。)Forwarding Decorators对于所有的集合接口,For all the var...翻译 2018-09-17 15:59:11 · 716 阅读 · 0 评论 -
Guava学习之Collections ——Collection Utilities
Collection Utilities有经验的程序员在使用JDK Collections框架时都喜欢使用 java.util.Collections 的工具类。Guava 沿用这条线提供了更多的实用工具:适用于所有集合的静态方法。这部分是Guava中最受欢迎也是最成熟的部分。对应于特定接口的方法以相对直观的方式分组:Interface JDK or Guava? Corr...翻译 2018-09-17 10:39:27 · 1069 阅读 · 0 评论 -
Guava学习之Collections——Immutable Collections
Immutable CollectionsExamplepublic static final ImmutableSet<String> COLOR_NAMES = ImmutableSet.of( "red", "orange", "yellow", "green", "blue", "purple"); class Foo { f翻译 2018-08-03 14:07:35 · 751 阅读 · 0 评论 -
Guava学习之Basic Utilities——Throwables
ThrowablesGuava's Throwables 工具可以轻松的解决exceptions问题。Propagation有时,当你catch 到一个异常,但是你想将其抛给下一个try/catch块。通常RuntimeException 或 Error实例不需要try/catch,但是如果你没有准备捕获它们时,会被try/catch所捕获。Guava 提供一系列的工作使得程序...翻译 2018-08-02 21:13:21 · 384 阅读 · 0 评论 -
Guava学习之Basic Utilities ——Object common methods
Object common methodsequals如果object对象允许为null,那么在实现Object.equals的时候因为你必须单独的检查为null的情况而变得复杂。由于Objects.equal以对null敏感的方式实现,可以让你不用再担心NullPointerException异常。Objects.equal("a", "a"); // returns true ...翻译 2018-08-02 11:12:06 · 201 阅读 · 0 评论 -
Guava学习之Basic Utilities ——Ordering
OrderingExampleassertTrue(byLengthOrdering.reverse().isOrdered(list));OverviewOrdering 是Guava's "fluent" Comparator 类, 它能够被用来建立复杂的比较器并应用于集合中。其核心的Ordering实例其实就是一个特殊的 Comparator实例. Ordering 将方...翻译 2018-08-01 23:55:32 · 242 阅读 · 0 评论 -
Guava学习之Collections ——New Collection Types
新集合类型Guava 引入了一些非常有用但是却不包含在JDK中的集合类型。这些集合都被设计成兼容JDK的集合框架,并没有将JDK集合的抽象内容隐藏。Guava的集合类实现严格遵守着JDK的接口契约。Multiset记录一个单词出现次数的传统做法如下:Map<String, Integer> counts = new HashMap<String, Integ...翻译 2018-08-06 19:28:28 · 306 阅读 · 0 评论 -
Guava学习——简介
Guava官方地址:https://github.com/google/guava/wiki用户指导Guava是谷歌研发的一系列Java基础工具项目,包含collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等。其被大量应用于谷歌的...翻译 2018-07-25 23:46:38 · 921 阅读 · 0 评论 -
Guava学习之Basic Utilities ——Preconditions
PreconditionsGuava 提供的预先检查参数的工具,强烈建议静态导入。这些方法有三个变体:没有多余的参数,任何异常都会在没有错误信息的情况下抛出。 一个额外的object类型参数,使得任何异常都会随着object.toString()抛出错误信息。 一个额外的具有任意数量的附加对象参数的String类型参数, 。这种行为类似于printf,但是为了GWT兼容性和效率,它...翻译 2018-08-01 19:40:05 · 168 阅读 · 0 评论 -
Guava学习之String utilities
String utilities Joiner以分隔符连接字符串序列是必须的操作,但是如果字符序列中包含null就会很难处理。Joiner会让这一切变得简单易用。Joiner joiner = Joiner.on("; ").skipNulls(); return joiner.join("Harry", null, "Ron", "Hermione");返回的字符串为 ...翻译 2018-11-07 11:19:57 · 321 阅读 · 0 评论