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实例。
来看Buffer组。
Buffer
BlockingBuffer
BoundedFifoBuffer
PriorityBuffer
UnboundedFifoBuffer
BufferUtils
Buffer是定义在org.apache.commons.collections包下面的接口,用于表示按一定顺序除去成员对象的collection如队列等。具体的实现类在org.apache.commons.collections.buffer包下可以找到。
BufferUtils提供很多静态/工具方法装饰现有的Buffer实例,如将其装饰成BlockingBuffer、执行类型检查的TypedBuffer、或者不可改变的UnmodifiableBuffer等等。
最简单直接的Buffer实现类是UnboundedFifoBuffer,提供先进先出的大小可变的队列。而BoundedFifoBuffer则是对其大小进行了限制,是固定大小的先进先出队列。BlockingBuffer要在多线程的环境中才能体现出它的价值,尤其是当我们需要实现某种流水线时这个BlockingBuffer很有用:每个流水线上的组件从上游的BlockingBuffer获取数据,处理后放到下一个BlockingBuffer中依次传递。BlockingBuffer的核心特色通俗点说就是如果你向它要东西,而它暂时还没有的话,你可以一直等待直至拿到为止。PriorityBuffer则提供比一般的先进先出Buffer更强的控制力:我们可以自定义Comparator给它,告诉它怎么判定它的成员的先后顺序,优先级最高的最先走。
分享到:
相关推荐
2. **Bag接口**:在Java标准库中没有提供类似的数据结构,但Commons Collections提供了Bag接口,它类似于Set,但允许元素有多个副本。这在需要统计元素出现次数的场景中非常有用。 3. **Transformer接口**:...
Apache Commons Collections 包含多个模块,如 Bag、BidiMap、Buffer、Comparator、Functor、Iterator、Map、Multimap、Set、TransformedMap、TypeConverter 等。这些模块提供了丰富的接口和实现,使得开发者能够...
2. `org.apache.commons.collections.bag`:实现了多值集合(Bag)的概念,允许元素的重复,提供了带权重的多值集合实现,如HashBag和TreeBag。 3. `org.apache.commons.collections.buffer`:提供了一组数据缓冲区...
***mons.collections.buffer:提供了实现Buffer接口的类,Buffer通常用于临时存储数据,常用于生产者-消费者模型中。 ***mons.collections.collection:提供了一系列实现了java.util.Collection接口的类,这些类...
对于性能优化,Apache Commons Collections 引入了`Buffer`接口,它提供了一种高效的元素缓冲机制,适用于需要频繁插入和删除操作的情景。同时,库中的数据结构和算法都经过精心设计和优化,以提高内存效率和运行时...
commons-collections.jar 的作用是提供了一些实用的集合类和方法,包括 Bag、Buffer、BidiMap、Map 迭代器等等。 commons-collections.jar 中包括了许多实用的类和方法,例如 Bag、Buffer、BidiMap、Map 迭代器...
commons-io.jar、commons-beanutils.jar、commons-digester.jar、commons-lang.jar、commons-codec.jar、commons-collections.jar 和 commons-dbutil.jar 都是 Java 开发中非常重要的 jar 包,它们提供了各种功能和...
`commons-collections.jar`为Java Collection框架提供了补充,引入了新的集合类型和操作,包括: - **Bag接口**:允许多个相同对象的集合。 - **Buffer接口**:用于顺序集合,如FIFO(先进先出)队列。 - **BidiMap...
commons.collections.buffer 提供了缓冲区实现,如`Buffer`、`SynchronizedBuffer`等。 ##### 3.3. commons.collections.bidimap 提供了双射映射(BiMap)的实现。 ##### 3.4. Comparator组 提供了比较器的...
Commons Collections库为Java标准集合框架提供了扩展。它包含以下组件: - Bag:存储对象的集合,但对象可以出现多次。 - Buffer:提供队列、栈和缓冲区的实现。 - BiDiMap:双向映射,允许从键映射到值,反之亦然...