Bag是一种简单的数据结构,其内部为数组,长度不可变。可以说是对数组的简单封装。EBag实现了Collection接口,具有Collection定义的方法外还具有求交集,并集,差集的功能。
------测试方法
package com.woxiaoe.collection.test;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.woxiaoe.collection.EBag;
import junit.framework.TestCase;
public class CollectionTest extends TestCase {
EBag<Integer> eBag = null;
List<Integer> l = null;
@Override
protected void setUp() throws Exception {
eBag = new EBag<Integer>(20);
l = new ArrayList<Integer>();
eBag.add(1);
eBag.add(2);
eBag.add(3);
eBag.add(4);
eBag.add(5);
eBag.add(6);
eBag.add(7);
eBag.add(8);
eBag.add(9);
eBag.add(10);//添加失败
l.add(11);
l.add(12);
l.add(13);
l.add(14);
l.add(15);
eBag.addAll(l);
}
public void testEBag() throws Exception{
Random r = new Random();
System.out.println("初始值:" + eBag);
System.out.println(eBag.size());
for(int i = 0; i <= 10; i++){
System.out.println("i:" +i + "\t" + eBag.remove(new Integer(i)));
}
System.out.println("删除1--10后:" + eBag);
System.out.println("大小:" + eBag.size());
eBag.removeAll(l);
System.out.println("删除链表l后:\t" + eBag);
setUp();
eBag.retainAll(l);
System.out.println("重新初始化后,只保留链表中的值" + eBag + "\t size:" + eBag.size());
}
public void testEBagUnion(){
EBag<Integer> bag2 = new EBag<Integer>(5);
bag2.add(2);
bag2.add(3);
bag2.add(4);
bag2.add(5);
bag2.add(6);
System.out.println("bag1:" + eBag);
System.out.println("bag2:" + bag2);
eBag = eBag.union(eBag, bag2);
System.out.println("求并集" + eBag);
}
public void testEBagintersection(){
EBag<Integer> bag2 = new EBag<Integer>(5);
bag2.add(2);
bag2.add(3);
bag2.add(4);
bag2.add(5);
bag2.add(6);
System.out.println("bag1:" + eBag);
System.out.println("bag2:" + bag2);
System.out.println("求交集" + EBag.intersection(eBag, bag2));
}
public void testEBagDifference(){
EBag<Integer> bag2 = new EBag<Integer>(5);
bag2.add(2);
bag2.add(3);
bag2.add(4);
bag2.add(5);
bag2.add(6);
System.out.println("bag1:" + eBag);
System.out.println("bag2:" + bag2);
System.out.println("求差集" + EBag.difference(eBag, bag2));
}
public void testClear(){
eBag.clear();
System.out.println("eBag 清空后 \t" + eBag);
eBag = null;
}
}
Output
初始值:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
15
i:0 false
i:1 true
i:2 true
i:3 true
i:4 true
i:5 true
i:6 true
i:7 true
i:8 true
i:9 true
i:10 true
删除1--10后:[11,12,13,14,15]
大小:5
删除链表l后: []
重新初始化后,只保留链表中的值[11,12,13,14,15] size:5
bag1:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
bag2:[2,3,4,5,6]
求并集[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,2,3,4,5,6]
bag1:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
bag2:[2,3,4,5,6]
求交集[2,3,4,5,6]
bag1:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
bag2:[2,3,4,5,6]
求差集[1,7,8,9,10,11,12,13,14,15]
eBag 清空后 []
null
分享到:
相关推荐
**正文** 在计算机视觉领域,BOW(Bag of Words,词袋模型)是一种广泛应用的图像...在给定的“Bag-of-visual-words”文件中,可能包含了实现这一过程的代码和示例,供学习者理解和实践BOW模型在SIFT特征上的应用。
/** Sees whether this bag is full. @return true if the bag is full, or false if not */ public boolean isFull(); /** Sees whether this bag is empty. @return true if the bag is empty, or false if not...
10. ** ROS版本兼容性**:不同的ROS版本可能对rosbag有略微不同的实现,因此在不同版本间迁移时,需要确保bag文件的兼容性。 总的来说,Python的rosbag模块是ROS系统中不可或缺的一部分,它提供了强大的数据记录和...
理解bag文件格式的关键在于掌握其内部的组织方式和数据结构,这通常需要借助专门的工具或者编程语言来实现。 **压缩包子文件的文件名称列表:ExtractorExt.dll、Extractor.exe、Scanning Results、Languages、...
关于标签:“源码”和“工具”,这暗示了这篇博文可能深入解析了Hibernate框架内部关于bag集合映射的源代码实现,并提供了实用的工具或技巧来帮助开发者理解和使用这一特性。源码分析有助于理解Hibernate的工作原理...
在处理这些.bag文件时,首先你需要了解ROS的bag命令行工具,例如`rosbag info`用于查看文件内容,`rosbag play`用于回放数据,以及`rosbag record`用于创建新的bag文件。提取数据可能涉及使用`rosbag extract`命令...
利用vlp16录制的点云bag包----velodyne_points.bag,topic为velodyne_points,利用rviz可以实现可视化,效果好
总结来说,"bag of word demo"是一个用Matlab实现的示例,展示了如何使用BoW模型处理图像数据,特别是对于图像分类和识别的应用。用户可以通过运行提供的m文件和exe文件,了解和学习BoW的工作流程,同时借助"images...
5. **ROSBag创建**:使用ROS的`rosbag`命令行工具或编程接口,将转换后的消息写入ROSBag文件。 6. **元数据保存**:除了原始数据,还需要保存相关的元数据,如传感器配置、车辆状态等,这些信息在ROSBag中通常以....
5. **使用Bag实现一对多,Set实现多对多**。 6. **使用显式多态处理继承类**。 7. **优化表结构,减少字段数量,增加表关联,利用二级缓存。 【Spring在Struts和Hibernate中的整合】 Spring作为IoC/DI容器,可以...
通过查看和研究源代码,他们可以理解程序的工作原理,学习如何实现类似的功能,甚至对程序进行定制或优化。 总的来说,Bag打包程序是游戏开发中的一个重要工具,它简化了资源管理,提高了效率,并且由于其开源性质...
通过熟练运用这套系统,企业可以实现设计、生产和管理的现代化,提高市场竞争力,降低成本,推动箱包行业的持续发展。对于有志于进入或已经在该行业工作的朋友来说,掌握邦臣ET BAG系统无疑是一项必备的技能。
在给定的项目中,Matlab和C++结合使用,Matlab可能用于图像处理和初步的数据预处理,如特征提取,而C++则可能用于构建高效的BoF模型和k-means聚类,以及实现搜索功能。Matlab提供了丰富的图像处理工具箱,易于实现和...
python merge_bag.py -v 1028msf.bag msf.bag vinReNoOutlier.bag 就把msf.bag和vinReNoOutlier.bag完全合并在一起了,时间戳打的都是原来两个bag里原始的时间戳,而不是像一边rosbag play一边rosbag record一样录...
**知识点详解:Bag of Words(BOW)模型在图像处理中的应用** Bag of Words(BOW)模型,字面意思为“词袋”,是文本分析领域的一种基础且强大的表示方法,近年来也被广泛应用于图像处理和计算机视觉领域。该模型的...
在本机器视觉作业中,我们将深入探讨“Scene Recognition with Bag of Words”(BoW,词袋模型)这一主题。词袋模型是计算机视觉领域中一个关键的表示方法,尤其在图像分类和检索任务中有着广泛的应用。这个作业将...
本文将深入探讨Unity中的"Project Bag"背包源码,帮助开发者理解其背后的实现机制,为自定义物品系统提供参考。 首先,我们关注的是"Project Bag"这个名字,它可能是项目团队对背包系统的内部称呼。在Unity中,一个...
它借鉴了自然语言处理领域中的“词袋”(Bag of Words, BoW)模型思想,通过将图像分解为一组特征点,并对这些特征进行统计分析来实现图像的表征。这种表示方法不仅简单有效,而且在很多情况下能够取得较好的分类...