没有合适的资源?快使用搜索试试~ 我知道了~
commons-Collections最常用类介绍.pdf
4星 · 超过85%的资源 需积分: 9 29 下载量 121 浏览量
2013-08-22
23:23:46
上传
评论 1
收藏 177KB PDF 举报
温馨提示
试读
46页
CommonsCollections,又是一个重量级的东西,为Java标准的CollectionsAPI提供了相当好的补充。我不知道其他人,就我自己而言,让我用 java.util.Collection及其子类,加上java.util.Collections类提供的操作方法,处理一些简单的数据结构问题还可以,稍微复杂一点的就觉得 有点头痛,很多细节的地方需要我插入这样那样的小逻辑,或者感觉它太死板,不够灵活,再或者确实有点晦涩吧。再说了,如果我只是处理一般 的数据结构问题,为什么不自己用数组或者自定义的链表来做,再加上JakartaCommons的Lang提供的ArrayUtils、StringUtils等,已经基本够 了,性能可以保证,那么还要这个CollectionsAPI干嘛。当然,说到这里有些偏激了,Collections当然有它存在的道理,能够把常用的数据结 构归纳起来,以通用的方式去维护和访问,这应该说是一种进步,但是用起来似乎不够友好。这个时候我就会想,如果Java比现在做得更好用些, 或者有一套第三方的API把我的这些需求抽象出来,实现了,该多好。CommonsCollections就是这样一套API。
资源推荐
资源详情
资源评论
Commons Collections ,又是一个重量级的东西,为 Java 标准的 Collections API 提供了相当好的补充。我不知道其他人,就我自己而言,让我 用
java.util.Collection 及其子类 , 加上 java.util.Collections 类提供的操作方法 , 处理一些简单的数据结构问题还可以 , 稍微复杂一点的就觉得
有点头痛,很多细节的地方需要我插入这样那样的小逻辑,或者感觉它太死板,不够灵活,再或者确实有点晦涩吧。再说了,如果我只是处理一般
的数据结构问题 , 为什么不自己用数组或者自定义的链表来做 , 再加上 Jakarta Commons 的 Lang 提供的 ArrayUtils 、 StringUtils 等 , 已经基本够
了,性能可以保证,那么还要这个 Collections API 干嘛。当然,说到这里有些偏激了, Collections 当然有它存在的道理,能够把常用的数据结
构归纳起来,以通用的方式去维护和访问,这应该说是一种进步,但是用起来似乎不够友好。这个时候我就会想,如果 Java 比现在做得更好用些
,
或者有一套第三方的 API 把我的这些需求抽象出来,实现了,该多好。 Commons Collections 就是这样一套 API 。
在这里可以找到下载链接 : ( binary 和 src 都有)
http://jakarta.apache.org/site/downloads/downloads_commons-collections.cgi
目前 Commons Collection 发布的最新版本是 3.1 。建议下载这个 3.1 版本,页面上出现的 <st1:chsdate w:st="on" isrocdate="False"
islunardate="False" day="30" month="12" year="1899">2.1.1</st1:chsdate> 是针对 2.1 不兼容 3.0 而发布的升级维护版。
我们先来浏览一下它的包结构。一共是 12 个:
org.apache.commons.collections – Commons Collections 自定义的一组公用的接口和工具类
org.apache.commons.collections.bag – 实现 Bag 接口的一组类
org.apache.commons.collections.bidimap – 实现 BidiMap 系列接口的一组类
org.apache.commons.collections.buffer – 实现 Buffer 接口的一组类
org.apache.commons.collections.collection – 实现 java.util.Collection 接口的一组类
org.apache.commons.collections.comparators – 实现 java.util.Comparator 接口的一组类
org.apache.commons.collections.functors – Commons Collections 自定义的一组功能类
org.apache.commons.collections.iterators – 实现 java.util.Iterator 接口的一组类
org.apache.commons.collections.keyvalue – 实现集合和键 / 值映射相关的一组类
org.apache.commons.collections.list – 实现 java.util.List 接口的一组类
org.apache.commons.collections.map – 实现 Map 系列接口的一组类
org.apache.commons.collections.set – 实现 Set 系列接口的一组类
用过 Java Collections API 的朋友大概或多或少会同意我如下的划分:在 Java 的 Collections API 中,不狭义的区分语法上的接口和类,把它们
都看作是类的话,大致我们可以发现三种主要的类别:
1- 容器类:如 Collection 、 List 、 Map 等,用于存放对象和进行简单操作的;
2- 操作类:如 Collections 、 Arrays 等,用于对容器类的实例进行相对复杂操作如排序等;
3- 辅助类 : 如 Iterator 、 Comparator 等 , 用于辅助操作类以及外部调用代码实现对容器类的操作 , 所谓辅助 , 概括而通俗的来讲 , 就是这些类提供
一种算法 , 你给它一个对象或者一组对象 , 或者仅仅是按一定的规则调用它 , 它给你一个运算后的答案 , 帮助你正确处理容器对象 。 比如 Iterato r
会告诉你容器中下一个对象有没有、是什么,而 Comparator 将对象大小 / 先后次序的算法逻辑独立出来。
同样, Jakarta Commons Collections 我们细细看来,也能够找出类似的划分:
1- 作为容器类的补充,我们可以找到 Bag 、 Buffer 、 BidiMap 、 OrderedMap 等等;
2- 作为操作类的补充,我们可以找到 CollectionUtils 、 IteratorUtils 、 ListUtils 、 SetUtils 等等;
3- 作为辅助类的补充,我们可以找到 MapIterator 、 Closure 、 Predicate 、 Transformer 等等;
对于这样的一个大包,当然不可能一个类一个类的讲了,找一些常用的和有用的当做接下来讨论的话题吧。大概列个清单:
Bag
HashBag
BagUtils
Buffer
BlockingBuffer
BoundedFifoBuffer
PriorityBuffer
BufferUtils
MultiMap
BidiMap
CaseInsensitiveMap
LazyMap
MapUtils
TypedCollection
CollectionUtils
ReverseComparator
ComparatorChain
NullComparator
FixedOrderComparator
ComparatorUtils
Predicate
AndPredicate
OrPredicate
AllPredicate
OnePredicate
NonePredicate
PredicateUtils
Transformer
ChainedTransformer
SwitchTransformer
TransformerUtils
Closure
ChainedClosure
IfClosure
WhileClosure
ClosureUtils
LoopingIterator
ArrayListIterator
FilterIterator
UniqueFilterIterator
IteratorUtils
总共 9 组,在接下来的笔记中我们一起慢慢的看。
先来看 Bag 组。
Bag
HashBag
BagUtils
Bag 是在 org.apache.commons.collections 包中定义的接口 , 它 extends java.util.Collection , 而它的实现类都被放在下面的 bag 包中 。 之所以
有这样一组类型 , 是因为我们有时候需要在 Collection 中存放多个相同对象的拷贝 , 并且需要很方便的取得该对象拷贝的个数 。 需要注意的一点是
它虽然 extends Collection ,但是如果真把它完全当作 java.util.Collection 来用会遇到语义上的问题,详细信息参考 Javadoc 。
HashBag 是 Bag 接口的一个标准实现。而 BagUtils 提供一组 static 的方法让调用者获取经过不同装饰后的 Bag 实例。
还是举例子来看:
/** Book.java */
package sean.study.commons.collections;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
public class Book {
剩余45页未读,继续阅读
资源评论
- zhou_lion2014-08-01算比较详细了,好东西,值得收藏和学习。
崎岖中看阳光
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
- Ultimate Seating Controller 终极座椅控制器Unity游戏开发插件资源unitypackage
- 什么是人工智能-关于人工智能的相关介绍说明
- Figma Converter for Unity适用Unity的Figma转换器Unity游戏开发插件unitypackage
- Creepy Animatronic Anims 令人毛骨悚然的电子动画Unity游戏动画插件资源unitypackage
- Rankings & Leaderboards 排名和排行榜Unity游戏开发插件资源unitypackage
- Semantic Color Palette 语义调色板Unity游戏开发插件资源unitypackage
- Low Poly Nature:Lush and Diverse Environments低聚自然郁郁Unity低多边形模型资源
- voc数据集是什么-我们如何使用voc数据集
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功