`
zyfautonavi
  • 浏览: 14917 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

commons.collections.buffer

阅读更多
Buffer是定义在org.apache.commons.collections包下面的接口,用于表示按一定顺序除去成员对象的

collection如队列等。具体的实现类在org.apache.commons.collections.buffer包下可以找到。

buffer下的实现类分为两类:基本类和包装类,大量用到了decrocate模式

基本类:

BoundedFifoBuffer:先进先出,默认32个
PriorityBuffer:告诉它怎么判定它的成员的先后顺序,优先级最高的最先走,优先级按照comarable接

口或者comparator决定。
CircularFifoBuffer:故名思议,默认创建32个容量的buffer,如果满了,将最老的东西给覆盖了。
UnboundedFifoBuffer:  先进先出的大小可变的队列, can grow to any size,性能比arrayList快的



包装类:
SynchronizedBuffer:将一个实现buffer接口的实现类多线程化
BlockingBuffer:多线程环境下,当BlockingBuffer为空时,等待,直到get()一个为止
TypedBuffer:要求加入的对象是某一中类型
TransformedBuffer:将对象转换为某一种兑现刚加入到其中,转化见 Transformer
PredicatedBuffer:加入到其中的类型满足一种定义,否则抛出异常。定义见PredicateDecorator
UnmodifiableBuffer:,不可变的buffer,一旦经过修饰,则不可以增加删除
BoundedBuffer:适合多线程下工作,只是在BoundedFifoBuffer上面增加了一个行为,当buffer为空的

时候,增加一个bolck行为,当等待时间超过给定的时间将会抛出异常,否则等待boundedBuffer被其他

线程new()出来。

BufferUtils:buffer的一个工具类,用他可以很方便的应用上除集合,最好看看源码


BufferUtils提供很多静态/工具方法装饰现有的Buffer实例,如将其装饰成BlockingBuffer、执行类型

检查的TypedBuffer、或者不可改变的UnmodifiableBuffer等等。



最简单直接的Buffer实现类是UnboundedFifoBuffer,提供先进先出的大小可变的队列。而

BoundedFifoBuffer则是对其大小进行了限制,是固定大小的先进先出队列。BlockingBuffer要在多线程

的环境中才能体现出它的价值,尤其是当我们需要实现某种流水线时这个BlockingBuffer很有用:每个

流水线上的组件从上游的BlockingBuffer获取数据,处理后放到下一个BlockingBuffer中依次传递。

BlockingBuffer的核心特色通俗点说就是如果你向它要东西,而它暂时还没有的话,你可以一直等待直

至拿到为止。PriorityBuffer则提供比一般的先进先出Buffer更强的控制力:我们可以自定义

Comparator给它,告诉它怎么判定它的成员的先后顺序,优先级最高的最先走。


org.apache.commons.collections.Predicate 下有无数的实现类,我们一样可以实现evalue()方法,
实现类的目的是将对类型的校验独立出来。如下:
public boolean evaluate(Object object)
它以一个Object对象为参数,处理后返回一个boolean值,检验某个对象是否满足某个条件
有些类似C/C++中的函数指针
0
1
分享到:
评论

相关推荐

    commons-collections-3.1.zip

    3. `org.apache.commons.collections.buffer`:提供了一组数据缓冲区(Buffer)的实现,如BoundedBuffer和FixedSizeBuffer,它们可以用于临时存储和处理数据。 4. `org.apache.commons.collections.iterators`:...

    commons-collections4-4.1.jar

    Commons Collections是Apache软件基金会开发的一个Java库,主要提供对集合框架的增强和扩展。这个库是Java标准集合接口的补充,增加了许多实用的功能,提高了代码的可读性和效率。"commons-collections4-4.1.jar"是...

    Apache commons jar包常用类讲解--Jakarta Commons 学习.pdf

    commons.collections.buffer 提供了缓冲区实现,如`Buffer`、`SynchronizedBuffer`等。 ##### 3.3. commons.collections.bidimap 提供了双射映射(BiMap)的实现。 ##### 3.4. Comparator组 提供了比较器的...

    commons-Collections最常用类介绍.pdf

    ***mons.collections.buffer:提供了实现Buffer接口的类,Buffer通常用于临时存储数据,常用于生产者-消费者模型中。 ***mons.collections.collection:提供了一系列实现了java.util.Collection接口的类,这些类...

    commons-collections4-4.4-bin.tar.gz

    Apache Commons Collections 4.4是Java开发人员常用的一个开源库,它是Apache软件基金会的一个项目,提供了许多实用的集合框架扩展,极大地丰富了Java标准库中集合类的功能。这个版本是4.4,属于项目的最新稳定版,...

    commons-collections-3.2.1-src.zip

    Apache Commons Collections 包含多个模块,如 Bag、BidiMap、Buffer、Comparator、Functor、Iterator、Map、Multimap、Set、TransformedMap、TypeConverter 等。这些模块提供了丰富的接口和实现,使得开发者能够...

    Apache Commons Collections 4.0 API+jar包

    对于性能优化,Apache Commons Collections 引入了`Buffer`接口,它提供了一种高效的元素缓冲机制,适用于需要频繁插入和删除操作的情景。同时,库中的数据结构和算法都经过精心设计和优化,以提高内存效率和运行时...

    java开发常用的jar包的作用解释.pdf

    commons-io.jar、commons-beanutils.jar、commons-digester.jar、commons-lang.jar、commons-codec.jar、commons-collections.jar 和 commons-dbutil.jar 都是 Java 开发中非常重要的 jar 包,它们提供了各种功能和...

    java开发常用的jar包的作用解释.docx

    commons-collections.jar 的作用是提供了一些实用的集合类和方法,包括 Bag、Buffer、BidiMap、Map 迭代器等等。 commons-collections.jar 中包括了许多实用的类和方法,例如 Bag、Buffer、BidiMap、Map 迭代器...

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

    Commons Collections库为Java标准集合框架提供了扩展。它包含以下组件: - Bag:存储对象的集合,但对象可以出现多次。 - Buffer:提供队列、栈和缓冲区的实现。 - BiDiMap:双向映射,允许从键映射到值,反之亦然...

    java常用扩展工具jar包详解

    `commons-collections.jar`为Java Collection框架提供了补充,引入了新的集合类型和操作,包括: - **Bag接口**:允许多个相同对象的集合。 - **Buffer接口**:用于顺序集合,如FIFO(先进先出)队列。 - **BidiMap...

    java常用工具类——个人总结

    - Apache Commons IO 提供的 ` FileUtils` 类提供了更多高级的文件操作,如复制、移动文件。 - `org.springframework.web.multipart` 包下的 `MultipartFile` 接口,常用于处理Spring MVC中的文件上传。 3. **...

    jsp探针 ver0.1

    Class.forName("org.apache.commons.collections.ArrayStack"); supportCommonCollection = true; } catch (ClassNotFoundException ex) { } try { Class.forName("org.apache.commons.digester.Digester"); ...

    java解压zip时中文名称解决方法

    try (FileSystem zipFs = FileSystems.newFileSystem(path, Collections.singletonMap("encoding", "GBK"))) { for (Path entry : zipFs.getRootDirectories().iterator().next().iterator()) { String entryName...

    java常用的工具类

    1. **Apache Commons Lang**: Apache Commons Lang是一个包含了许多实用功能的Java工具包,如字符串操作、数组处理、对象创建等。其中,`StringUtils`提供了大量的字符串操作方法,例如`isEmpty()`、`isBlank()`、`...

    servlet实现文件上传、预览、下载、删除功能

    * commons-collections-3.2.1.jar * commons-lang-2.6.jar * commons-logging-1.1.3.jar * ezmorph-1.0.6.jar * json-lib-2.4-jdk15.jar 此外,我们还需要使用 Eclipse 作为开发工具,并创建一个合适的目录结构。在...

    Java学习笔记-个人整理的

    {4.8}Collections集合工具类}{86}{section.4.8} {4.9}Comparable与Comparator}{86}{section.4.9} {4.9.1}Comparable}{86}{subsection.4.9.1} {4.9.2}Comparator}{87}{subsection.4.9.2} {4.10}包装类}{87}{...

Global site tag (gtag.js) - Google Analytics