`
woxiaoe
  • 浏览: 277106 次
  • 性别: 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
分享到:
评论

相关推荐

    论文研究-Out-of-bag样本的应用研究 .pdf

    Out-of-bag样本的应用研究,张春霞,郭高,Bagging集成通过组合不稳定的基分类器在很大程度上降低

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

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

    SIFT等局部特征的词袋模型实现。包括K-means聚类,直方图特征的形成,以及KNN分类。

    velodyne_points.bag

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

    k-means + Bag of features 源码

    这是一个用matlab和c++联合编写的bag of features源码,实现了完整的bof 图像搜索功能,经测试准确度可达80%.具体用法详见我的CSDN博客。具体用法详见我的CSDN博客。

    基于matlab和bag of words实现的图像分类+源代码+文档说明+设计报告

    1、资源内容:基于matlab和bag of words实现的图像分类+源代码+文档说明+设计报告 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能...

    tf_bag:实用程序在Python脚本中透明使用rosbag记录的tf数据

    tf软件包中包含的程序实现了对/tf主题上传入的消息的后台记录,并将它们组合在直接非循环图中,然后可以在两个任意节点之间进行查找。 尽管可以将/tf和/tf_static主题包括在/tf_static记录的主题中,但没有提供...

    bag2video:将rosbag中的图像转换为视频

    由于OpenCv无法以可变帧速率进行编码,因此可通过复制帧来实现可变帧速率。 这会产生非常大的文件,应使用ffmpeg之类的文件重新编码。用法 usage: bag2video.py [-h] [--outfile OUTFILE] [--precision PRECISION] ...

    bag of words

    详细介绍了bag of words 的算法实现和算法原理,值得学习。

    bag-of-words_词袋图像检索_词袋模型_python_bagofvisualwords_bagofwords_

    基于内容的图像检索。通过Bag of Visual Words视觉词袋模型构建视觉词袋,实现以图搜图

    Project bag 背包源码

    Project bag 背包源码,unity 代码仅供参考,请不要商用

    kitti2bag:将KITTI数据集轻松转换为ROS bag文件!

    只需分叉此仓库,实现新功能(在这种情况下非常简单)并发出。 功能请求列表: 制作汽车的 ,因此ROS本身可以轻松完成帧之间的转换。 处理小径 支持未同步+未修正的版本 通过提供文档 提供简单的GU

    基于matlab和bag of words的图像分类

    实现 数据集:caltech101 matlab + bag of words 改自ImageCategoryClassificationTrainSample bag of words:利用matlab中bagOfFeatures函数提取SURF特征并K-means聚类构造“词典” svm:利用...

    rosbag2

    用于实现rosbag2的存储库,如其相应的。 安装说明 Debian软件包 rosbag2软件包可通过debian软件包获得,因此可以通过以下方式安装 $ export CHOOSE_ROS_DISTRO=crystal # rosbag2 is available starting from ...

    基于matlab和bag of words的图像分类.rar

    实现 数据集:caltech101 matlab + bag of words 改自ImageCategoryClassificationTrainSample bag of words:利用matlab中bagOfFeatures函数提取SURF特征并K-means聚类构造“词典” svm:利用...

    rosbag_snapshot

    用法rosbag_snapshot可以通过命令行标志和ROS参数进行配置,以实现更精细的控制。 默认情况下,该命令将在服务器模式下运行(缓冲数据)。 当使用某些标志时,程序将通过请求服务器将数据写入磁盘或冻结缓冲区以保留...

    erlscripten:Erlang至PureScript转译器。 在浏览器中运行Erlang!

    Erlscripten – Erlang到PureScript编译器...) 钢筋项目移植ETS(仅缺少duplicate_bag实现)支持什么? 位串泄漏可变范围基本的erlang流程仿真NIFs什么将不被支持热门代码重装分布式erlang 随时支持我们: ak_2WESwy76

    SIFT OpenCV实现

    SIFT OpenCV实现源码

    Java+opencv实现bof图像检索算法

    使用bof算法来提取图像特征,在corel数据集(10*100张图片)上实现以图搜图,即输入数据集中某一张图,在剩下的999张图里搜索最邻近的10张图。

Global site tag (gtag.js) - Google Analytics