`
jackey25
  • 浏览: 111395 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

查找在A数组中存在,B数组不存在的数据

阅读更多
查找在A数组中存在,B数组不存在的数据
有以下三种方法
总结 :
1.使用了循环里面的label
2.使用了一个flag作为标志位
3.最简单,使用了Set这个集合的remove(Collection)方法。

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;


/*
 * 查找在A数组中存在,B数组不存在的数据
 */
public class FindData {
	public static void main(String[] args) {
	    int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
	    int[] b = { 2, 4, 6, 8, 0 };
	    FindData m = new FindData();
	    List s = new ArrayList();
	    //s = m.FindDifferent1(a, b);
	    s = m.FindDifferent3(a, b);
	    Iterator it = s.iterator();
	    while(it.hasNext()){
	    	System.out.println(it.next());
	    }
	  }

	public List FindDifferent1(int[] a, int[] b){
		List list = new ArrayList();
		Outer: for(int i=0;i<a.length;i++){
			for(int j=0;j<b.length;j++){
				if(a[i] == b[j]){
					continue Outer;
				}
			}
			list.add(a[i]);
		}
		return list;
	}

	public List FindDifferent2(int[] a, int[] b){
		List list = new ArrayList();
		boolean flag ;
		for(int i : a){
			flag = false;
			for(int j : b){
				if(i==j)
					flag = true;
			}
			if(flag != true)
				list.add(i);
		}
		return list;
	}

	public List FindDifferent3(int[] a, int[] b){
		Set set1 = new HashSet();
		Set set2 = new HashSet();
		List list = new ArrayList();
		for(int i : a){
			set1.add(i);
		}
		for(int j : b){
			set2.add(j);
		}
		set1.removeAll(set2);
		Iterator it = set1.iterator();
		while(it.hasNext()){
			list.add(it.next());
		}
		return list;
	}
}

分享到:
评论

相关推荐

    两个升序的数组A、B,将AB合并到C,保持升序,去除重生的元素

    本问题涉及的是两个已按升序排列的整数数组A和B的合并,目标是将它们合并到一个新的数组C中,同时确保C也按升序排列,并且在合并过程中去除重复的元素。下面将详细探讨这个过程的实现方法。 首先,我们要明确合并两...

    javascript 折半查找字符在数组中的位置(有序列表).docx

    其基本原理是通过不断将查找区间对半分割,逐步缩小目标值所在范围,直至找到目标值或确定目标值不存在于原数组中。 #### 折半查找算法原理 折半查找算法基于以下步骤: 1. **初始化**:设置两个指针 `lowPoint` ...

    搜索两个数组中相同的部分,并建立一个新数组

    在这个例子中,我们首先将数组`a`转换为一个集合`set_a`,这样可以提供更快的查找速度。然后,我们遍历数组`b`中的每个元素,检查它是否存在于`set_a`中,如果存在,则将其添加到结果列表`common_elements`中。 ###...

    vc++实现对五个具有3列的数组进行查找三列都相同的值并重新放入新的数组中

    在VC++编程环境中,我们经常需要处理数据结构和算法,特别是在处理多维数组时。本问题的核心在于如何高效地在五个具有3列的数组中找到那些三列值都完全相同的行,并将它们整合到一个新的数组中。这涉及到数组操作、...

    FINDARRAY:在另一个数组中找到一个数组。-matlab开发

    FINDARRAY 在另一个数组中查找一个数组I = FINDARRAY(A,B,'first') 为数组 B 返回一个索引数组与 B 相同的大小,包含 A 中每个的最小绝对索引B 的元素是 A 的成员,如果没有这样的索引,则为 0。 FINDARRAY(A,B) 与 ...

    内存结构数组数据管理

    内存结构数组数据管理是计算机科学中的一个重要领域,它涉及到如何高效地在内存中组织和操作数据,以便于文件的读写、数据的排序、查找、筛选以及动态扩展。以下是对这些概念的详细解释: 1. **文件写入内存**:在...

    数组数据删除

    本篇文章将详细探讨“数组数据删除”这一主题,特别是如何从数组中删除指定的字符,包括重复的字符。 首先,我们要理解数组的基本概念。数组是一系列相同类型的数据元素的有序集合,通过索引来访问每个元素。在多数...

    用matlab如何求出一个数组中最接近某个数的五个数

    在MATLAB中,寻找一个数组中最接近特定数值的五个数是一项常见的操作,特别是在数据分析和算法设计中。这个任务可以通过排序和索引技巧来实现。以下是一个详细的步骤解释: 首先,我们需要一个包含多个数值的数组,...

    Java中的数组

    需要注意的是,访问不存在的索引(如负数或超过数组长度的索引)将导致`ArrayIndexOutOfBoundsException`异常: ```java System.out.println(arr[5]); // 抛出ArrayIndexOutOfBoundsException ``` #### 五、数组的...

    JavaScript遍历查找数组中最大值与最小值的方法示例

    在JavaScript编程中,遍历数组以查找最大值和最小值是一项基本操作,广泛应用于数据分析、统计计算以及各种算法实现中。下面将详细讲解如何利用JavaScript实现这个功能,并提供相关的实例和技巧。 首先,我们来看...

    信息学竞赛培训:数组一

    在这个例子中,首先读取了`n`个整数并存储在一维数组`a`中,然后读取待查询的整数`x`,最后遍历数组`a`来统计`x`出现的次数。这种遍历数组的方式称为**顺序查找**。 #### 四、标记 在某些情况下,需要对数组中的...

    顺序查找和折半查找在10个元素中查找20

    在最坏的情况下,顺序查找需要比较10次才能确定20不存在于数组中。 而折半查找,又称为二分查找,只适用于已经排序的数组。它的基本思想是利用数组的有序性来减少查找次数。在给定的10个元素中,如果已按升序排列,...

    易语言源码易语言取数组成员出现次数源码.rar

    在易语言中,处理数组是非常常见的操作,尤其是计算数组成员的出现次数是许多算法和数据处理任务的基础。这个"易语言取数组成员出现次数源码.rar"文件包含的源代码很可能是用来演示或教授如何在易语言中统计数组中各...

    pb 编写的数组使用方法,希望对初学者有用

    在IT领域,数组是编程语言中的基础数据结构之一,用于存储和操作一组同类型的数据元素。根据提供的代码片段,我们可以深入探讨数组的使用方法,尤其是针对一维和二维数组的初始化、赋值以及如何在实际场景中应用这些...

    Java数组练习题(带答案).doc

    1. 错误的初始化语句是_ABD_,因为A选项字符串长度超过数组长度,B选项同样如此,D选项字符数组不能直接用字符串初始化。 2. 错误的引用是_B_,因为数组下标越界。 3. 正确的二维数组初始化语句是_B_,因为A和C...

    Vue监听一个数组id是否与另一个数组id相同的方法

    数据list,结构为[{id:1,…},{id:2,…}],数据shoplist,结构为[{id:1,…},{id:2,…}],判断当shoplist.id等于list.id时显示list的数据。 .vue文件: &lt;button @click=clickButtonShopList&gt;click me&lt;...

    易语言取数组中重复文本下标源码.rar

    如果一个数组中存在相同的文本值,那么这些相同值的下标就代表了它们在数组中的位置。这个源码可以用于数据清洗、去重或者数据分析等场景,帮助我们找出数组中重复元素的具体位置,以便进行进一步的处理。 取数组中...

    matlab字符串数组

    `size()`函数显示了它们的尺寸,数值数组`a`占用8字节,而字符串数组`b`占用2字节,尽管在MATLAB中字符串的尺寸表示为1x1,实际上它会占用额外的字节来存储字符信息。 在【例3.1.2-1】中,我们进一步了解了字符串...

    求两个数组的交集

    接下来,我们再遍历第二个数组B,对于每个元素,如果它在哈希表中存在并且计数不为零,那么就将其添加到结果集合中,并将计数减一。这种方法的时间复杂度为O(n),因为每个元素只被访问一次。 具体步骤如下: 1. ...

    后继数组模型-实现中文全文搜索

    例如,在上文提供的示例文本中,“a”在位置0,“b”在位置1,“c”在位置2,以此类推。此外,还需要记录每个字符相对于文本末尾形成的字符串(即半无限串),以便后续的排序操作。 2. **排序与索引构建**:接下来...

Global site tag (gtag.js) - Google Analytics