`

[Jakarta Commons笔记] Commons Collections

阅读更多

Commons Collections,又是一个重量级的东西,为Java标准的Collections API提供了相当好的补充。我不知道其他人,就我自己而言,让我用java.util.Collection及其子类,加上java.util.Collections类提供的操作方法,处理一些简单的数据结构问题还可以,稍微复杂一点的就觉得有点头痛,很多细节的地方需要我插入这样那样的小逻辑,或者感觉它太死板,不够灵活,再或者确实有点晦涩吧。再说了,如果我只是处理一般的数据结构问题,为什么不自己用数组或者自定义的链表来做,再加上Jakarta CommonsLang提供的ArrayUtilsStringUtils等,已经基本够了,性能可以保证,那么还要这个Collections API干嘛。当然,说到这里有些偏激了,Collections当然有它存在的道理,能够把常用的数据结构归纳起来,以通用的方式去维护和访问,这应该说是一种进步,但是用起来似乎不够友好。这个时候我就会想,如果Java比现在做得更好用些,或者有一套第三方的API把我的这些需求抽象出来,实现了,该多好。Commons Collections就是这样一套API

 

在这里可以找到下载链接:(binarysrc都有)

http://jakarta.apache.org/site/downloads/downloads_commons-collections.cgi

 

目前Commons Collection发布的最新版本是3.1。建议下载这个3.1版本,页面上出现的2.1.1是针对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的朋友大概或多或少会同意我如下的划分:在JavaCollections API中,不狭义的区分语法上的接口和类,把它们都看作是类的话,大致我们可以发现三种主要的类别:

 

1- 容器类:如CollectionListMap等,用于存放对象和进行简单操作的;

2- 操作类:如CollectionsArrays等,用于对容器类的实例进行相对复杂操作如排序等;

3- 辅助类:如IteratorComparator等,用于辅助操作类以及外部调用代码实现对容器类的操作,所谓辅助,概括而通俗的来讲,就是这些类提供一种算法,你给它一个对象或者一组对象,或者仅仅是按一定的规则调用它,它给你一个运算后的答案,帮助你正确处理容器对象。比如Iterator会告诉你容器中下一个对象有没有、是什么,而Comparator将对象大小/先后次序的算法逻辑独立出来。

 

同样,Jakarta Commons Collections我们细细看来,也能够找出类似的划分:

 

1- 作为容器类的补充,我们可以找到BagBufferBidiMapOrderedMap等等;

2- 作为操作类的补充,我们可以找到CollectionUtilsIteratorUtilsListUtilsSetUtils等等;

3- 作为辅助类的补充,我们可以找到MapIteratorClosurePredicateTransformer等等;

 

对于这样的一个大包,当然不可能一个类一个类的讲了,找一些常用的和有用的当做接下来讨论的话题吧。大概列个清单:

 

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组,在接下来的笔记中我们一起慢慢的看。

分享到:
评论

相关推荐

    [Jakarta Commons笔记]

    【Jakarta Commons笔记】 Jakarta Commons是Apache软件基金会的一个项目集合,它提供了许多Java开发中常用的工具类和组件。这个项目旨在减少重复的工作,通过共享和重用代码,提高开发效率。Jakarta Commons包含了...

    jakarta commons cookbook 电子版

    《Jakarta Commons Cookbook》是Java开发领域中一本非常实用的指南,主要涵盖了Apache Jakarta Commons组件的使用技巧和最佳实践。这本书旨在帮助开发者更好地理解和利用Jakarta Commons库中的各种工具类和模块,...

    jakarta-commons 相关依赖包

    jakarta-commons 相关依赖包,文件列表: commons-attributes-api.jar commons-attributes-compiler.jar commons-beanutils.jar commons-codec.jar commons-collections.jar commons-dbcp.jar commons-digester.jar ...

    Jakarta Commons cookbook.chm与中文版的笔记

    《Jakarta Commons Cookbook》是Java开发者的一本重要参考资料,它主要涵盖了Apache Jakarta Commons项目中的各种组件和工具的使用方法。Apache Commons是Java开发中的一个关键部分,提供了许多实用且功能强大的类库...

    Apache Jakarta Commons 使用手册

    ### Apache Jakarta Commons 使用手册知识点详解 #### 一、概述 《Apache Jakarta Commons 使用手册》是一部详细介绍Apache Jakarta Commons项目下的各种Java组件的专业书籍。该书由Will Iverson编写,旨在为...

    jakarta commons cookbook.zip

    在Java开发中,Jakarta Commons库提供了许多子项目,如IO、Lang、BeanUtils、Collections、Codec等,每个子项目都专注于特定的领域,如输入/输出操作、字符串处理、对象的创建和复制、集合的扩展以及编码解码等。...

    Jakarta Commons使用

    **Jakarta Commons 使用详解** Jakarta Commons 是一个 Apache 软件基金会的项目,它包含了一系列独立、可重用的 Java 类库,旨在提供常见编程任务的解决方案。这些类库覆盖了从输入输出处理到字符串操作,再到网络...

    jakarta commons-API

    **Jakarta Commons API** 是一个Java开发人员广泛使用的开源库集合,它包含了多个模块,每个模块专注于特定的编程任务,从而简化了Java应用程序的开发。Jakarta Commons是Apache软件基金会的一个项目,它提供了大量...

    JakartaCommons 详细教程更助于你的基础

    2. Jakarta Commons Collections Commons Collections库为Java标准集合框架提供了扩展。它包含以下组件: - Bag:存储对象的集合,但对象可以出现多次。 - Buffer:提供队列、栈和缓冲区的实现。 - BiDiMap:双向...

    Jakarta Commons Online Bookshelf

    《Jakarta Commons在线书架》一书深入探讨了Jakarta Commons框架的核心概念与应用实践,为读者提供了一次全面理解并掌握Jakarta Commons组件的机会。本书由Vikram Goyal编写,版权归属Manning Publications,出版于...

    JAKARTA COMMONS

    7. **Commons Collections**: 扩展和增强了 Java 标准 Collection 框架,提供更多的集合操作和数据结构,如优先队列、双向列表等。 8. **Commons Configuration**: 提供工具来读取和处理不同格式的配置文件,支持 ...

    Jakarta Commons

    **Jakarta Commons 知识点详解** Jakarta Commons 是 Apache 软件基金会的一个项目集合,它提供了大量的可重用 Java 类库,旨在简化开发人员的工作。这些类库覆盖了从文件上传、缓存处理到网络通信等多个领域,极大...

    介绍Jakarta Commons的烹饪书

    2. **Collections框架**:Commons-Collections模块提供了对Java内置Collections类库的扩展,包括新的集合实现、迭代器、工厂方法等,为处理Java集合提供了更多灵活性。 3. **FileUpload组件**:处理HTTP文件上传是...

    Jakarta commons docs API CHM 格式

    commons-collections 扩充了 java.util.collection 接口 commons-compress 操作压缩文件的 API commons-configuration 可以从xml、properties、JNDI、JDBC、System properties、Applet parameters和Servlet ...

    Jakarta Commons Cookbook(CHM)

    2. **Collections**: Commons Collections 提供了对Java集合框架的增强,包含各种集合工厂方法、迭代器工具、比较器以及集合的转换和复制功能。了解这些工具可以让你更好地管理和操作集合对象。 3. **Net**: ...

    jakarta commons cookbook目录

    《Jakarta Commons Cookbook》是Java开发领域中一本重要的参考资料,主要涵盖了Apache Jakarta Commons项目中的各种实用工具类库的使用技巧和实践经验。这本书的核心是帮助开发者更有效地利用这些库来提高编程效率和...

    Iverson book Apache Jakarta Commons[E文版]

    Apache Jakarta Commons是Apache软件基金会的一个项目集合,它提供了一系列实用工具类库,旨在简化Java开发。这个项目的主要目标是创建可重用的Java组件,这些组件涵盖了从数据处理到网络通信的各种领域。Iverson的...

    JAVA-Jakarta Commons 巧用类及其组件.pdf

    Jakarta Commons 项目涵盖了多个组件,如 CLI、Discovery、Lang 和 Collections 等,它们分别针对特定的功能需求。 CLI(Command Line Interface)包是处理命令行参数的工具,它提供了一个统一的接口来访问和解析...

    apache-jakarta旗下的所有开源项目jar文件

    apache-jakarta-commons-collections.jar apache-jakarta-commons-discovery.jar apache-jakarta-commons-email.jar apache-jakarta-commons-fileupload.jar apache-jakarta-commons-httpclient.jar apache-jakarta-...

    Jakarta.Commons.Cookbook

    1. **组件介绍**:Apache Jakarta Commons包含许多模块,如Collections、IO、Lang、Net等。每个模块都解决特定的编程问题,例如Collections提供了丰富的集合操作工具,IO专注于输入/输出处理,Lang提供通用的字符串...

Global site tag (gtag.js) - Google Analytics