`
woxiaoe
  • 浏览: 284565 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Bag的实现

阅读更多

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

 


  • src.rar (2.7 KB)
  • 描述: 源代码
  • 下载次数: 2
0
0
分享到:
评论

相关推荐

    BOW(Bag of words,词袋)模型代码实现

    **正文** 在计算机视觉领域,BOW(Bag of Words,词袋模型)是一种广泛应用的图像...在给定的“Bag-of-visual-words”文件中,可能包含了实现这一过程的代码和示例,供学习者理解和实践BOW模型在SIFT特征上的应用。

    python rosbag 模块

    10. ** ROS版本兼容性**:不同的ROS版本可能对rosbag有略微不同的实现,因此在不同版本间迁移时,需要确保bag文件的兼容性。 总的来说,Python的rosbag模块是ROS系统中不可或缺的一部分,它提供了强大的数据记录和...

    DoubleLinkedBag:带双链表的 Bag 实现

    /** 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...

    打开 bag 文件

    理解bag文件格式的关键在于掌握其内部的组织方式和数据结构,这通常需要借助专门的工具或者编程语言来实现。 **压缩包子文件的文件名称列表:ExtractorExt.dll、Extractor.exe、Scanning Results、Languages、...

    hibernate bag 集合映射

    关于标签:“源码”和“工具”,这暗示了这篇博文可能深入解析了Hibernate框架内部关于bag集合映射的源代码实现,并提供了实用的工具或技巧来帮助开发者理解和使用这一特性。源码分析有助于理解Hibernate的工作原理...

    RatSLAM的bag文件提取资源

    在处理这些.bag文件时,首先你需要了解ROS的bag命令行工具,例如`rosbag info`用于查看文件内容,`rosbag play`用于回放数据,以及`rosbag record`用于创建新的bag文件。提取数据可能涉及使用`rosbag extract`命令...

    velodyne_points.bag

    利用vlp16录制的点云bag包----velodyne_points.bag,topic为velodyne_points,利用rviz可以实现可视化,效果好

    KITTI数据集 转换为ROSBAG格式,且补充了点云格式转换部分,比原始的全面一些

    5. **ROSBag创建**:使用ROS的`rosbag`命令行工具或编程接口,将转换后的消息写入ROSBag文件。 6. **元数据保存**:除了原始数据,还需要保存相关的元数据,如传感器配置、车辆状态等,这些信息在ROSBag中通常以....

    bag of word demo

    总结来说,"bag of word demo"是一个用Matlab实现的示例,展示了如何使用BoW模型处理图像数据,特别是对于图像分类和识别的应用。用户可以通过运行提供的m文件和exe文件,了解和学习BoW的工作流程,同时借助"images...

    2022年StrutsSpringHibernate面试题总结.docx

    5. **使用Bag实现一对多,Set实现多对多**。 6. **使用显式多态处理继承类**。 7. **优化表结构,减少字段数量,增加表关联,利用二级缓存。 【Spring在Struts和Hibernate中的整合】 Spring作为IoC/DI容器,可以...

    ET-BAG软件CAD出格系统教程.pdf

    这些功能为用户在绘图过程中提供了强大的工具支持,无论是细节处理还是整体布局,都能够得到很好的实现。 总结来说,ET-BAG软件CAD出格系统教程为设计者提供了一套系统全面的CAD设计学习指南。它不仅涵盖了智能笔、...

    bag打包程序

    通过查看和研究源代码,他们可以理解程序的工作原理,学习如何实现类似的功能,甚至对程序进行定制或优化。 总的来说,Bag打包程序是游戏开发中的一个重要工具,它简化了资源管理,提高了效率,并且由于其开源性质...

    邦臣ET bag CAD箱包制版.zip

    通过熟练运用这套系统,企业可以实现设计、生产和管理的现代化,提高市场竞争力,降低成本,推动箱包行业的持续发展。对于有志于进入或已经在该行业工作的朋友来说,掌握邦臣ET BAG系统无疑是一项必备的技能。

    k-means + Bag of features 源码

    在给定的项目中,Matlab和C++结合使用,Matlab可能用于图像处理和初步的数据预处理,如特征提取,而C++则可能用于构建高效的BoF模型和k-means聚类,以及实现搜索功能。Matlab提供了丰富的图像处理工具箱,易于实现和...

    如何将两个rosbag包合并或者提取rosbag包中某些话题到一个rosbag里

    python merge_bag.py -v 1028msf.bag msf.bag vinReNoOutlier.bag 就把msf.bag和vinReNoOutlier.bag完全合并在一起了,时间戳打的都是原来两个bag里原始的时间戳,而不是像一边rosbag play一边rosbag record一样录...

    bag of words

    **知识点详解:Bag of Words(BOW)模型在图像处理中的应用** Bag of Words(BOW)模型,字面意思为“词袋”,是文本分析领域的一种基础且强大的表示方法,近年来也被广泛应用于图像处理和计算机视觉领域。该模型的...

    机器视觉作业(三)Scene Recognition with Bag of Words

    在本机器视觉作业中,我们将深入探讨“Scene Recognition with Bag of Words”(BoW,词袋模型)这一主题。词袋模型是计算机视觉领域中一个关键的表示方法,尤其在图像分类和检索任务中有着广泛的应用。这个作业将...

    DenseSurfelMapping提供的带有vins位姿话题和D435i深度图话题的surfel-color02.bag包

    在“surfel-color02.bag”包中,包含了D435i的深度图话题,这使得我们可以直接利用这些数据进行点云生成和后处理,以实现更加精确的环境建模。 该bag文件是专门为测试目的设计的,允许开发者和研究人员验证和评估...

Global site tag (gtag.js) - Google Analytics