[Google Guava笔记](二)base
2?????? base:像这个包名所描述的,提供了基本的实用工具库和接口。
?
接口:
2.1 ??? FinalizableReference:如果引用被垃圾回收后还有代码需要执行,实现此接口。只有一个方法:voidfinalizeReferent(),这个方法在引用被垃圾回收时由后台线程调用,除非安全限制阻止了后台线程的启动,这种情况下当新的引用被创建时调用此方法。
2.2?? ? Function<F,T>:根据输入值决定输出。有两个方法:Tapply(@Nullable F input),booleanequals(@Nullable Object object)。
2.3????Predicate<T>:根据输入返回ture或false,谓词。有两个方法:boolean apply(@Nullable T input),booleanequals(@Nullable Object object)。
2.4???? Supplier<T>:提供某种类型的对象的类。可以是factory、 generator、builder、 closure等。只有一个方法Tget()。
2.11 ?Equivalence<T>:决定两个实例是否被判定为等效的策略。有两个方法:booleanequivalent(@Nullable T a, @Nullable T b)、inthash(@Nullable T t)。
2.28 ?Ticker:与时间有关的类,返回从某个定点时间到现在的纳秒数。有一个方法:read()。
?
枚举类:
2.5????CaseFormat:多种ASCII大小写格式转换的工具类。枚举值有:小写的连字符、小写的下划线、lower_camel、upper_camel和大写的下划线。有一个public方法:to(CaseFormatformat, String s),它根据format对s进行相应转换。
?
类:
2.6 ? ?Ascii:提供了一组静态变量和与Ascii相关的静态方法。静态变量包括从0到32,以及127的Ascii码。静态方法包括toLowerCase(String)、toLowerCase(Char)、toUpperCase(String)、toUpperCase(Char)、isUpperCase(Char)、isLowerCase(Char)。
2.7????CharMatcher:实现了Predicate接口,根据输入的字符返回true或false。是一个抽象类,内部有多个子类,包括公有的静态类和匿名内部类。
公有的静态变量:
?????????WHITESPACE:CharMatcher,根据最新的Unicode标准,判断一个字符是否是空白符。
?????????BREAKING_WHITESPACE:CharMatcher,判断一个字符是否是可以用来分词的空白符。
ASCII:CharMatcher,判断一个字符是否是ASCII,即小于128。
DIGIT:CharMatcher,根据Unicode判断一个字符是否是数字。
JAVA_DIGIT:CharMatcher,根据Java中Charactor.isDigit(char)的定义来判断一个字符是否是数字。
JAVA_LETTER:CharMatcher,根据Java中Charactor.isLetter(char)的定义来判断一个字符是否是字母。
?????????JAVA_LETTER_OR_DIGIT:CharMatcher,根据Java中Charactor.isLetterOrDigit(char)的定义来判断一个字符是否是字母或数字。
??????? ?JAVA_UPPER_CASE:CharMatcher,根据Java中Charactor.isUpperCase(char)的定义来判断一个字符是否是大写格式。
?????????JAVA_LOWER_CASE:CharMatcher,根据Java中Charactor.isLowerCase(char)的定义来判断一个字符是否是小写格式。
?????????JAVA_ISO_CONTROL:CharMatcher,根据Java中Charactor.isISOControl(char)的定义来判断一个字符是否是ISO控制字符,ISO控制字符的范围为\u0000-\u001f和\u007f- \u009f。
?????????INVISIBLE:CharMatcher,判断一个字符是否为不可见的,包括SPACE_SEPARATOR,LINE_SEPARATOR, PARAGRAPH_SEPARATOR, CONTROL, FORMAT, SURROGATE,和PRIVATE_USE。
SINGLE_WIDTH:CharMatcher,判断一个字符是否为单字,如果不能判断则猜测它是双字的,返回false。
ANY:CharMatcher,任意字符。
NONE:CharMatcher,与ANY相反,不匹配任何字符。
?
静态方法:
is(final charmatch):返回CharMatcher,方法内有个CharMatcher的匿名内部类,它判断一个字符是否为match。
isNot(final charmatch):返回CharMatcher,作用与is()相反。
anyOf(final CharSequencesequence):返回CharMatcher,判断一个字符是否在sequence内。
noneOf(CharSequencesequence):返回CharMatcher,与anyOf()相反。
?????????inRange(final charstartInclusive, final charendInclusive):返回CharMatcher,判断一个字符是否在startInclusive和endInclusive范围内。
?????????forPredicate(finalPredicate<? super Character>predicate):返回CharMatcher,将参数中的predicate包装成CharMatcher。
?
成员方法:
matches(charc):根据c返回true或false。
negate():返回与当前CharMatcher作用相反的CharMatcher。
and(CharMatcherother):返回this与other效果的CharMatcher。
or(CharMatcherother):返回this或other效果的CharMatcher。
?????????precomputed():返回CharMatcher,该CharMatcher在检索时比原始的CharMatcher效率高,但是预处理也需要花时间,所以只有当某个CharMatcher需要被使用上千次的时候才有必要进行预处理。这个方法在GWT中被调用时没有效果,无法判断precomputed()返回的CharMatcher是否更快,但是它消耗了很多内存,因此在浏览器中使用很不划算。
matchesAnyOf(CharSequencesequence):如果sequence中有字符能匹配,返回true。
matchesAllOf(CharSequencesequence):如果sequence中的所有字符都能匹配,返回true。
matchesNoneOf(CharSequencesequence):如果sequence中的所有字符都不能匹配,返回true。
?????????indexIn(CharSequencesequence):返回suquence中第一个被匹配到的字符的位置,如果没有被匹配到的字符,返回-1。
indexIn(CharSequencesequence, int start)、lastIndexIn(CharSequence sequence):与上面的方法类似。
countIn(CharSequencesequence):返回sequence中匹配到的字符数。
removeFrom(CharSequencesequence):返回sequence删除匹配到的字符后的字符串。
retainFrom(CharSequencesequence):返回sequence删除未匹配到的字符后的字符串。
replceFrom(CharSequencesequence, char replacement):将sequence中被匹配到的字符替换为replacement。
replceFrom(CharSequencesequence, CharSequence replacement):与上面的方法类似。
?????????trimFrom(CharSequencesequence):删除sequnce头尾被匹配到的字符。例如:CharMatcher.anyOf("ab").trimFrom("abacatbab")返回cat。
?????????trimLeadingFrom(CharSequencesequence)、trimTrailingFrom(CharSequencesequence)分别删除sequence头部、尾部被匹配到的字符。
?????????collapseFrom(CharSequencesequence, charreplacement):把sequence中连续被匹配到的字符用一个replacement替换。例如:CharMatcher.anyOf("eko").collapseFrom("bookkeeper",'-')返回”b-p-r”。
trimAndCollapseFrom(CharSequencesequence, char replacement)。
apply(Charactercharacter):Predicate接口中声明的方法,作用与matches相似。
2.8??? Charsets:字符集,定义了所有Java平台都支持的六个标准字符集的实例,包括:US_ASCII、ISO_8859_1、UTF_8、UTF_16BE、UTF_16LE、UTF_16。
2.9???Defaults:提供了所有Java类型的默认值。有一个静态方法:defaultValue(Classtype),返回type的默认值。
2.10?Enums:
2.12?Equivalences:包含一个静态的创建Equivalence实例的工厂方法。
静态方法:
equals():返回一个Equivalence<Object>,如果两个对象相等(equal),则可判定为等效。
identity():返回一个Equivalence<Object>,如果两个对象是同一个对象,判定为等效。
?????????pairwise(Equivalence<?super T>elementEquivalence):返回一个Equivalence<Object>,是PairwiseEquivalence<T>类型的,对可迭代的对象进行判定。判定的策略是对相同位置的元素用elementEquivalence进行判定,如果至少有一对元素不等效,那么判定这两个可迭代对象不等效。
2.13?PairwiseEquivalence<T>:实现了Equivalence<Iterable<T>>接口,判定两个可迭代对象是否等效。
?
(未完待续)
以上。
?
?