Guava学习系列 Google guava是一个java的工具集,为我们提供了许多实用的帮助类及扩展,对于java程序员很有帮助,下面是一些guava中常用的东西,如有不足,望指教。 Guava学习(一):OptionalGuava学习(二):Preconditions 前置条件Guava学习(三):ObjectsGuava学习(四):Ordering(流畅风格排序器)Guava学习(五):Compa...
Guava学习(十):区间 数学里的区间可以描述一个范围,guava中使用Range帮助我们实现了这种功能。主要方法如下:离散区间抽象类:DiscreteDomain,可以自己实现这个抽象类来创建特定的离散类。代码示例:RangeTest 类package com.bluedragon.guavalearning.range;import com.google.common.collect.BoundTyp...
Guava学习(九):字符串处理 Guava提供了一些字符串处理的类,Joiner:连接器(字符串连接用的),Splitter:拆分器(字符串拆分用的),CharMatcher:字符匹配器(字符匹配用的),CaseFormat:大小写格式。使用例子:/** * @author CodeRush * @date 2019/8/12 22:48 */public class StringToolsTest {...
Guava学习(八):集合帮助类 guava中的集合帮助类主要有:Collections2,Lists,Sets,Maps,Ints,Strings等基本集合类型对应的帮助类及guava的新集合类型对应的帮助类,类名基本是对应类后面加个s。其中Lists,Sets的生产集合的方法可以再创建的时候就传入元素,使用很方便,Sets可以对对两个Set求交集、并集、差集,在某些场景下很有用,其他很多方法有兴趣可以看看。使用例子:pa...
Guava学习(七):新的集合类型 文章目录MultisetMultimapBiMapTableClassToInstanceMapRangeSetRangeMap主要介绍目录中这七种,下面分别介绍^_$。MultisetMultiset:它可以多次添加相等的元素,Multiset继承自JDK中的Collection接口,而不是Set接口,所以包含重复元素并没有违反原有的接口契约。使用场景:一些需要计算元素个数的情况等。...
Guava学习(六):不可变集合 Guava学习(六):不可变集合使用不可变集合的好处:当对象被不可信的库调用时,不可变形式是安全的;不可变对象被多个线程调用时,不存在竞态条件问题不可变集合不需要考虑变化,因此可以节省时间和空间。所有不可变的集合都比它们的可变形式有更好的内存利用率(分析和测试细节);不可变对象因为有固定不变,可以作为常量来安全使用。创建对象的不可变拷贝是一项很好的防御性编程技巧。Guava为所有JD...
Guava学习(五):ComparisonChain(比较链) Guava学习(五):ComparisonChain(比较链)主要作用是帮助我们实现对象的比较(如果对象有多个字段,我们希望比较的时候是根据多个字段来比较的),没用这个之前我们通常这样写: class Person implements Comparable { private String lastName; private String firstName; ...
Guava学习(四):Ordering(流畅风格排序器) Guava学习(四):Ordering(流畅风格排序器) 排序器[Ordering]是Guava流畅风格比较器[Comparator]的实现, 它可以用来为构建复杂的比较器, 以完成集合排序的功能。 从实现上说, Ordering实例就是一个特殊的Comparator实例。 Ordering把很多基于Comparator的静态方法(如Collections.max) 包装为自己的实例方法...
Guava学习(三):Objects Guava学习(三):Objects guava的Objects类中为我们提供了一些实用法方法,主要有:equals,hashCode(这两个jdk7的Objects中也有),toStringHelper(已经废弃,建议使用MoreObjects.toStringHelper,用来帮助生成更易于查看的toString方法)例子:package com.bluedragon.guavale...
Guava学习(二):Preconditions 前置条件 Guava学习(二):Preconditions 前置条件前置条件主要是封装了一些条件判断的实用方法,Preconditions类中主要方法如下:使用例子:package com.bluedragon.guavalearning.preconditions;import com.google.common.base.Preconditions;/** * @author Code...
Guava学习(一):Optional Guava学习(一):OptionalOptional对象中的主要方法如下:例子: package com.bluedragon.guavalearning.optional; import com.google.common.base.Optional; /** * @author CodeRush * @date 2019/7/27 20:39 */ publ...
大型网站技术架构·核心原理与案例分析思维导图 大型网站技术架构·核心原理与案例分析思维导图大型网站技术架构·核心原理与案例分析 第一章·大型网站架构演化思维导图大型网站技术架构·核心原理与案例分析 第二章·大型网站架构模式思维导图大型网站技术架构·核心原理与案例分析 第三章·大型网站核心架构要素思维导图大型网站技术架构·核心原理与案例分析 第四章·瞬时响应:网站的高性能架构思维导图大型网站技术架构·核心原理与案例分析 第五章·万无一...