Bag集合工具类(apache-commons-collections3.2工具包)在java中的使用

109 篇文章 1 订阅
订阅专栏
28 篇文章 0 订阅
订阅专栏


Bag 是在 org.apache.commons.collections 包中定义的接口 ,也是集合的一种扩充工具类,当然结合用JDK中的map类进行相应的逻辑处理,也能实现Bag类的功能,但apache推出来肯定有它的原因和用处,知道有这么一个类了解它大概的用法,开发的时候真遇到这种情况,知道有这么个工具在你身边等着你用呢。

此接口定义源码:

public interface Bag extends Collection {

    /**
     * Returns the number of occurrences (cardinality) of the given
     * object currently in the bag. If the object does not exist in the
     * bag, return 0.
     * 
     * @param object  the object to search for
     * @return the number of occurrences of the object, zero if not found
     */
    int getCount(Object object);
}

它 继承了 java.util.Collection , 而它的实现类都被放在下面的bag 包中:


 Bag,"袋"的意思,肯定是装“东西”的,之所以有这样一组类型 , 是因为我们有时候需要在Collection 中存放多个相同对象的拷贝 , 并且需要很方便的取得该对象拷贝的个数 。 需要注意的一点是它虽然继承JDK中的Collection ,但是如果真把它完全当作java.util.Collection 来用会遇到语义上的问题,HashBag 是 Bag 接口的一个标准实现。而BagUtils 提供一组static 的方法让调用者获取经过不同装饰后的 Bag 实例。

看一下具体用法就一目了然了:




定义一个简单辅助类:

package apache_commons_collections;

public class Person {
	public String name;
	public int year;
	
	public Person(){
		
	}
	
	public Person(String name,int year){
		this.name=name;
		this.year=year;
	}
	
	public String getName(){
		return this.name;
	}
	
	public int getYear(){
		return this.year;
	}
}


测试:

package apache_commons_collections;

import org.apache.commons.collections.Bag;
import org.apache.commons.collections.BagUtils;
import org.apache.commons.collections.bag.HashBag;


public class BagTest {
	
	public static void main(String args[]){
		Person p1=new Person("chen",23);
		Person p2=new Person("chen",21);
		Person p3=new Person("chen",11);
		Bag myBag=BagUtils.typedBag(new HashBag(),Person.class);	//实例化一个Bag
		myBag.add(p1,11);	
		myBag.add(p2,143);	
		myBag.add(p3,67);	
		
		System.out.println(myBag.getCount(p1));
		System.out.println(myBag.getCount(p2));
		System.out.println(myBag.getCount(p3));
	}
}

结果:

11
143
67

更加详细的用法和说明,大家可以 http://commons.apache.org/proper/commons-collections/下载源码和相应的API文档仔细研究研究。

注意:这组接口违反了 Collection contract这些方法中指定的行为不一样所指定的行为集合。不合规的方法显然是标有“(违反)”。使用这个Bag保持谨慎。
这违反了从原始规范的接口。在一个理想世界中,接口将改变解决此问题,但是已经决定维持向后兼容性。

java bag集合_集合基于数组的实现:ArrayBag.java
weixin_29023349的博客
02-19 294
/*** @Author 陈伟兵* @MSN:cwbnig1982@hotmail.com* @E-mail:chenweibing1982@sohu.com* @CreateTime 2004-11-30* @Version:1.0*/package com.cwbnig.util;import Java.util.Random;import java.util.Iterator;public ...
commons-collections-3.2.1.jar
10-07
commons-collections-3.2.1.jar我们在S2SH框架使用局部刷新Ajax的时候,经常需要返回json数据,有时候,发现明明代码没有问题,就是不显示数据,仔细查看控制台,才发现是jar没有导入完整
javabag浅析
风之云的博客
08-19 5092
Bag型抽象数据定义为:不可remove()该Bag存在的item,存在的意义为collect the items 和迭代iterate the items 。如何封装包使客户端用户无法删除其的items呢,我的最初设想为不添加remove()方法。看了官方给的bag代码,才知正确的做法为提供remove()方法,但里面的执行statement语句为抛出一个异常,使用户使...
commons-collections-3.2.jar
09-29
Apache Commons CollectionsJava开发常用的一个开源库,它为Java集合框架提供了大量的实用工具类和扩展。"commons-collections-3.2.jar"是该库的版本3.2的实现,它包含了一系列高效、实用且功能丰富的数据结构和...
commons-collections-3.2源码包
01-19
Apache Commons CollectionsJava开发不可或缺的工具库,它极大地扩展了Java的内置集合框架,为开发者提供了更丰富的数据结构和算法实现。这个源码包,名为"commons-collections-3.2.2",包含了Apache Commons ...
apache-commons-collections
weixin_38842582的博客
12-14 3967
apache-commons-collections 【概要】 Commons Collections,又是一个重量级的东西,为Java标准的Collections API提供了相当好的补充。Collections当然有它存在的道理,能够把常用的数据结构归纳起来,以通用的方式去维护和访问,这应该说是一种进步,但是用起来似乎不够友好。这个时候我就会想,如果Java比现在做得更好用些,或者有一套第三方...
commons-collections4-4.1.jar
12-21
Commons CollectionsApache软件基金会开发的一个Java库,主要提供对集合框架的增强和扩展。这个库是Java标准集合接口的补充,增加了许多实用的功能,提高了代码的可读性和效率。"commons-collections4-4.1.jar"是...
bag解压工具文简体版
04-10
解压bag文件支持天下贰游戏资源包解压.文简体版...........
commons-collections-3.2.jar - Java包下载页
05-21
这是commons-collections-3.2.jar的下载,它是commons集合工具类的封装包。因为commons-collections有很多版本,每个版本的环境又有些不同,所以版本对应是最好的,有需要3.2版本的可下载
commons-collections-3.2.2-
11-01
用来修补weblogic的反序列化漏洞,重命名后替换之前Middleware\modules下的的3.2.0版
Bag的实现
05-28
源代码 博文链接:https://ideasforjava.iteye.com/blog/634863
JAVA:实现Bag背包算法(附完整源码)
希望我的博客,能帮上你解决学习中工作中所遇到的问题
08-09 380
JAVA:实现Bag背包算法(附完整源码)
孙卫琴的《精通JPA与Hibernate》的读书笔记:映射Bag包(值型的集合
csdnuserlala的博客
05-06 191
Bag集合的对象不按特定方式排序,但是允许有重复对象。在Java集合API并没有提供Bag接口,Hibernate允许在持久化用List来模拟Bag的行为。假定Customer对象的images集合允许存放重复的照片文件名,可以把images属性定义为List型: private List<String> images=new ArrayList<String>(); 在数据库定义了一张IMAGES表,它的CUSTOMER_ID字段为参照CUSTOMERS表的外键,由
10. 集合映射-bag
远方水木
06-11 237
集合映射-bag Bag,实际上就是List的另一个版本,我们使用List存储元素时,元素以先后添加顺序存储在集合,映射到数据库时,也会保持先后顺序,当我们从数据库取出数据时,数据依然有序,如果我们并不想维持元素之间的先后顺序关系,那我们可以使用没有顺序的List——BagBag 表结构 items_bag表(父表) CREATE TABLE items_bag( ...
Java Bag模型模拟
张晨光老师的播客
04-04 850
//背包节点(布袋节点) public class BagNode&lt;Item&gt;{ Item item; //参数 BagNode next; //下一个背包节点; } import java.util.Iterator; //定义泛型背包 public class Bag&lt;Item&gt; implements Iterable&lt;Item&gt; { //0...
写文章

热门文章

  • SpringMVC与Struts2区别与比较总结 298161
  • 压力测试工具JMeter入门教程 258244
  • 最常用的15大Eclipse开发快捷键技巧 218577
  • 利用StringEscapeUtils对字符串进行各种转义与反转义(Java) 190823
  • Java过滤器与SpringMVC拦截器之间的关系与区别 160737

分类专栏

  • java线程与并发 16篇
  • java性能优化 41篇
  • java编程思想 109篇
  • java集合 20篇
  • JS-Java正则表达式 2篇
  • Socket编程 1篇
  • Guava-Commons-xml-json等工具类库 28篇
  • java虚拟机 37篇
  • 设计与模式 9篇
  • Groovy
  • Python
  • hibernate 3篇
  • SSH2 5篇
  • MyBatis 4篇
  • spring 23篇
  • struts2 9篇
  • jsp-servlet 10篇
  • oracle-mysql-sqlserver 25篇
  • linux(shell编程) 10篇
  • WebService 2篇
  • hadoop
  • MongoDB 1篇
  • Redis 3篇
  • HBase
  • Solr/Lucene
  • Dubbo 2篇
  • Zookeeper 1篇
  • OpenStack
  • Docker
  • Spark/Storm
  • 爬虫
  • MVC-pureMVC 1篇
  • Quartz 2篇
  • 工作流
  • Flex
  • 缓存 12篇
  • jQuery 6篇
  • javascript 12篇
  • SSO 3篇
  • 数据结构与算法 8篇
  • HTML-CSS 3篇
  • Maven-JUnit-JProfiler等工具 15篇
  • 我的异常记录 13篇
  • 敏捷开发 6篇
  • 架构 9篇
  • 服务器及其他 15篇
  • 随笔 7篇
  • IT商业界 5篇
  • IT技术界 6篇

最新评论

  • 马上要走了,去北京.....

    Connie1451: 2024-09-20

  • 马上要走了,去北京.....

    Connie1451: 2023-11-28

  • 马上要走了,去北京.....

    Connie1451: 2023-08-23 还在吗?

  • 马上要走了,去北京.....

    Connie1451: 2023-05-17 还好吗?

  • oracle到底能不能insert into 多个values!?

    Mr·小鱼: 表情包原文出处设置得有一手。

大家在看

  • PD 取电快充协议芯片 支持广泛应用,最高取电电压100W
  • 【人工智能】看我如何用4个AI大模型,实现了堪比o1-preview的思维链。内含3个AI问答的数据比对结果!
  • java毕业设计-基于SSM的党务政务服务热线平台【代码+论文+PPT】
  • 【Linux】指令和权限的这些细节,你确定都清楚吗?
  • 【Proteus仿真】基于51单片机的电机调速和速度实时显示 1140

最新文章

  • 马上要走了,去北京.....
  • Redis上踩过的一些坑-美团
  • Redis的性能幻想与残酷现实
2016年4篇
2015年243篇
2014年10篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家南充玻璃钢蔬菜雕塑厂南京小品系列玻璃钢雕塑厂家简单的玻璃钢雕塑昭通市玻璃钢雕塑订做大型玻璃钢雕塑摆件销售校园景观玻璃钢雕塑河南玻璃钢人物雕塑价格报价四川户外商场美陈研发大足区玻璃钢雕塑玻璃钢雕塑凳子厂家选哪家北京特色商场美陈研发桂林玻璃钢雕塑批发定制天水卡通玻璃钢雕塑设计宁安玻璃钢关公雕塑玻璃钢雕塑昆明唐山玻璃钢雕塑制作厂家梅州玻璃钢卡通雕塑厂家批发景洪玻璃钢气球雕塑三明玻璃钢广场雕塑定制南通玻璃钢雕塑安装保山市玻璃钢雕塑设计报价济源玻璃钢卡通雕塑定做唐山动物玻璃钢雕塑生产厂家辽宁玻璃钢海豚雕塑定制益阳景观玻璃钢雕塑制作城市玻璃钢雕塑图片购买玻璃钢雕塑的人群商场美陈方案汇报江西多彩玻璃钢雕塑多少钱邯郸玻璃钢雕塑价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化