commons-collections使用介绍之Bag HashBag
在commons-collections中为我们提供了一些关于集合的实现,今天为大家介绍一下Bag
相关类的用法。
概述
Bag
继承自Collection
接口,定义了一个集合,该集合会记录对象在集合中出现的次数。
假设你有一个包,包含{a, a, b, c}。调用getCount(a)方法将返回2,调用uniqueset()方法将返回{a, b, c}。
API
方法摘要
返回值 | 方法名 | 说明 |
---|---|---|
boolean | add(Object object) | (违反)将指定的对象添加到该包中 |
boolean | add(Object object, int nCopies) | 将指定数量的对象添加到该包中 |
boolean | containsAll(Collection coll) | 判断包中是否含有集合中所有元素 |
int | getCount(Object object) | 获得对象在包中的数量 |
Iterator | iterator() | 获得包元素迭代器 |
boolean | remove(Object object) | 移除包中元素 |
boolean | remove(Object object, int nCopies) | 移除指定数量的包中的元素 |
boolean | removeAll(Collection coll) | 移除包中包含的集合中的所有元素 |
boolean | retainAll(Collection coll) | 删除包中不在集合中的元素 |
int | size() | 获得包中元素个数 |
Set | uniqueSet() | 获得包中唯一元素集合(去重) |
HashBag
HashBag
使用HashMap
作为数据存储,是一个标准的Bag
实现。
使用示例:
package com.gujin.collections.bag;import java.util.Iterator;import org.apache.commons.collections.bag.HashBag;
import org.junit.Test;public class HashBagBagTest
{@Testpublic void test(){HashBag hashBag = new HashBag();String s1 = "s1";String s2 = "s2";hashBag.add(s1);hashBag.add(s1);hashBag.add(s2, 3);// 获得包中元素迭代器Iterator<?> iterator = hashBag.iterator();System.out.println("包中元素为:");while (iterator.hasNext()){System.out.println(iterator.next());}System.out.println("包中元素个数为:" + hashBag.size());System.out.println("包中entity1个数为:" + hashBag.getCount(s1));System.out.println("去重后个数为:" + hashBag.uniqueSet().size());}
}
运行结果:
包中元素为:
s1
s1
s2
s2
s2
包中元素个数为:5
包中entity1个数为:2
去重后个数为:2
TreeBag
TreeBag
使用TreeMap
作为数据存储,用法与HashBag
类似,只是TreeBag
会使用自然顺序对元素进行排序。
使用示例:
package com.gujin.collections.bag;import java.util.Iterator;import org.apache.commons.collections.bag.TreeBag;
import org.junit.Test;public class TreeBagBagTest
{@Testpublic void test(){TreeBag hashBag = new TreeBag();String s1 = "s1";String s2 = "s2";String s3 = "s3";hashBag.add(s3);hashBag.add(s1);hashBag.add(s2);// 获得包中元素迭代器Iterator<?> iterator = hashBag.iterator();System.out.println("包中元素为:");while (iterator.hasNext()){System.out.println(iterator.next());}System.out.println("包中元素个数为:" + hashBag.size());System.out.println("包中entity1个数为:" + hashBag.getCount(s1));System.out.println("去重后个数为:" + hashBag.uniqueSet().size());}
}
运行结果:
包中元素为:
s1
s2
s3
包中元素个数为:3
包中entity1个数为:1
去重后个数为:3
关于Bag的更多内容,可以去官网查看相关的帮助文档。
commons-collections使用介绍之Bag HashBag相关推荐
- Google Guava Collections 使用介绍
原帖http://www.open-open.com/lib/view/open1325143343733.html 简介: Google Guava Collections 是一个对 Java Co ...
- Apache Commons 工具类介绍及简单使用(转)
转自:http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下 ...
- Apache Commons 工具类介绍及简单使用
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍. 组件 功能介绍 BeanUtils 提供了对于 ...
- Apache Commons Collections包和简介
背景介绍 Apache Commons是Apache软件基金会的项目,曾经隶属于Jakarta项目.Commons的目的是提供可重用的.解决各种实际的通用问题且开源的Java代码.Commons由三部 ...
- beanutils工具类_Apache Commons 工具类介绍及简单使用
来源:http://h5ip.cn/9xu3 Apache Commons 工具类大家都有用过,但是可能缺乏系统学习,只用到了一小部分功能,无法发挥极限的价值,肥朝用大白话说就是,一颗好白菜都让猪给拱 ...
- Commons Collections
Apache Commons Collections - Overview Commons Collections增强了Java Collections Framework.它提供了几个功能,使收集处 ...
- yso之Commons Collections
CommonCollection Gadget主要是由ConstantTransformer,InvokerTransformer,ChainedTransformer构成.gadget主要通过Tra ...
- 【web安全】记一次 Commons Collections 新调用链的挖掘
前言 最近回顾了下之前的关于Commons Collections这块的笔记,从CC1到CC10,从调用链来看,其实都是很相似的.为了巩固下复习的效果,尝试挖掘一条新的调用链,遂出现了本文,大佬轻喷. ...
- java multivaluemap_java – 使用自定义值集合类型创建Commons Collections MultiValueMap
Apache Commons Collections库的4.0版本增加了泛型支持.我无法转换代码以利用它: 我想要一个MultiValueMap,它将String作为键,并将一个字符串集合作为值.但: ...
最新文章
- Caused by: java.sql.BatchUpdateException
- 如何利用神经网络结合遗传算法进行非线性函数极值寻优(2)
- 2020年服务器操作系统占有率,服务器操作系统占有率
- collection集合 介绍_五分钟了解MongoDB介绍,安装与使用
- explain的用法_这次是真拯救了我,MySQL索引优化,explain讲得非常清楚了
- MMO游戏War Riders宣布将于基于区块链的游戏开发公司Immutable集成
- 深入理解计算机系统(2.7)------二进制小数和IEEE浮点标准
- 你真的把数据库事务搞懂了吗,有图有真相,图文并茂!
- 【设计模式】-工厂模式->工厂方法模式(源码与类图解析)
- 傅里叶变换 ~ 什么是傅里叶变换?
- 直角三角形用计算机怎么做,App Store 上的“直角三角形计算器”
- exfat默认配置大小_我的空间哪里去了?注意exfat格式设置的陷阱
- 数据集Freebase-FB13
- 视频播放器三大底层架构
- 保存下载图片(taro h5)
- 如何在word里面打对勾
- Java软件测试工程师之学习进阶路线
- 【数据库数据恢复】华为云mysql数据库数据被delete的数据恢复案例
- 逻辑思维不强的适合学java嘛_逻辑思维能力的培养很重要吗
- 什么是损失函数?什么是梯度