Iterators类提供了返回Iterator类型的对象或者对Iterator类型对象操作的方法。除了特别的说明,Iterators类中所有的方法都在Iterables类中有相应的基于Iterable方法对应。 性能说明:除非特别说明,所有在这个类中的迭代器都是懒惰的,这意味着在觉得必要的时候,需要提前得到迭代功能。Iterators类可以通过emptyIterator()方法得到 w397090770 11年前 (2013-09-11) 3979℃ 3评论0喜欢
Lists类主要提供了对List类的子类构造以及操作的静态方法。在Lists类中支持构造ArrayList、LinkedList以及newCopyOnWriteArrayList对象的方法。其中提供了以下构造ArrayList的函数:下面四个构造一个ArrayList对象,但是不显式的给出申请空间的大小:[code lang="JAVA"] newArrayList() newArrayList(E... elements) newArrayList(Iterable<? w397090770 11年前 (2013-09-10) 19724℃ 2评论8喜欢
Splitter:在Guava官方的解释为:Extracts non-overlapping substrings from an input string, typically by recognizing appearances of a separator sequence. This separator can be specified as a single character, fixed string, regular expression or CharMatcher instance. Or, instead of using a separator at all, a splitter can extract adjacent substrings of a given fixed length. w397090770 11年前 (2013-09-09) 7112℃ 1评论0喜欢
Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。曾是Jakarta项目的子项目,现为独立Apache项目。 大家肯定遇到过想在pom文件中加入自己开发的依赖包,这些包肯定是 w397090770 11年前 (2013-08-02) 39431℃ 0评论19喜欢
一、过滤器 从过滤器这个名字上可以得知就是在源数据和目标数据之间起到过滤作用的中间组件。例如家里用的纯净水过滤器,将自来水过滤为纯净水。过滤器是在Servlet2.3规范中引入的新功能,并在Servlet2.4规范中得到增强。它是在服务端运行的Web组件程序,可以截取客户端给服务器发的请求,也可以截取服务器给客户端的响应。 w397090770 11年前 (2013-08-01) 3695℃ 0评论5喜欢
在编写程序的时候,很多时候都需要检查输入的参数是否符合我们的需要,比如人的年龄需要大于0,名字不能为空;如果不符合这两个要求,我们将认为这个对象是不合法的,这时候我们需要编写判断这些参数是否合法的函数,我们可能这样写:[code lang="JAVA"]package com.wyp;import java.util.ArrayList;import java.util.List;/** * Crea w397090770 11年前 (2013-07-24) 6101℃ 4评论2喜欢
在《Guava学习之RangeSet》中谈到了RangeSet的特点及其用法。今天要谈的的RangeMap和RangeSet有许多不一样的。 在Google Guava官方API上面可以得知:RangeMap是一种集合类型( collection type),它将不相交、且不为空的Range(key)映射给一个值(Value)。和RangeSet不一样,RangeMap不可以将相邻的区间合并,即使这个区间映射的值是一样的。 w397090770 12年前 (2013-07-18) 6942℃ 0评论5喜欢
前面谈到了Guava中新引入的Range类,也了解了其中的作用,那么今天来谈谈Guava中用到Range来的地方:RangeSet类。RangeSet类是用来存储一些不为空的也不相交的范围的数据结构。假如需要向RangeSet的对象中加入一个新的范围,那么任何相交的部分都会被合并起来,所有的空范围都会被忽略。 讲了这么多,我们该怎么样利用RangeS w397090770 12年前 (2013-07-17) 7438℃ 1评论4喜欢
在Guava中新增了一个新的类型Range,从名字就可以了解到,这个是和区间有关的数据结构。从Google官方文档可以得到定义:Range定义了连续跨度的范围边界,这个连续跨度是一个可以比较的类型(Comparable type)。比如1到100之间的整型数据。不过我们无法遍历出这个区间里面的值。如果需要达到这个目的,我们可以将这个范围传给Conti w397090770 12年前 (2013-07-15) 5385℃ 0评论4喜欢
Immutable中文意思就是不可变。那为什么需要构建一个不可变的对象?原因有以下几点: 在并发程序中,使用Immutable既保证线程安全性,也大大增强了并发时的效率(跟并发锁方式相比)。尤其当一个对象是值对象时,更应该考虑采用Immutable方式; 被不可信的类库使用时会很安全; 如果一个对象不需要支持修改操作(mutation w397090770 12年前 (2013-07-12) 8678℃ 1评论8喜欢