查找在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的合并,目标是将它们合并到一个新的数组C中,同时确保C也按升序排列,并且在合并过程中去除重复的元素。下面将详细探讨这个过程的实现方法。 首先,我们要明确合并两...
其基本原理是通过不断将查找区间对半分割,逐步缩小目标值所在范围,直至找到目标值或确定目标值不存在于原数组中。 #### 折半查找算法原理 折半查找算法基于以下步骤: 1. **初始化**:设置两个指针 `lowPoint` ...
在这个例子中,我们首先将数组`a`转换为一个集合`set_a`,这样可以提供更快的查找速度。然后,我们遍历数组`b`中的每个元素,检查它是否存在于`set_a`中,如果存在,则将其添加到结果列表`common_elements`中。 ###...
在VC++编程环境中,我们经常需要处理数据结构和算法,特别是在处理多维数组时。本问题的核心在于如何高效地在五个具有3列的数组中找到那些三列值都完全相同的行,并将它们整合到一个新的数组中。这涉及到数组操作、...
FINDARRAY 在另一个数组中查找一个数组I = FINDARRAY(A,B,'first') 为数组 B 返回一个索引数组与 B 相同的大小,包含 A 中每个的最小绝对索引B 的元素是 A 的成员,如果没有这样的索引,则为 0。 FINDARRAY(A,B) 与 ...
内存结构数组数据管理是计算机科学中的一个重要领域,它涉及到如何高效地在内存中组织和操作数据,以便于文件的读写、数据的排序、查找、筛选以及动态扩展。以下是对这些概念的详细解释: 1. **文件写入内存**:在...
本篇文章将详细探讨“数组数据删除”这一主题,特别是如何从数组中删除指定的字符,包括重复的字符。 首先,我们要理解数组的基本概念。数组是一系列相同类型的数据元素的有序集合,通过索引来访问每个元素。在多数...
在MATLAB中,寻找一个数组中最接近特定数值的五个数是一项常见的操作,特别是在数据分析和算法设计中。这个任务可以通过排序和索引技巧来实现。以下是一个详细的步骤解释: 首先,我们需要一个包含多个数值的数组,...
需要注意的是,访问不存在的索引(如负数或超过数组长度的索引)将导致`ArrayIndexOutOfBoundsException`异常: ```java System.out.println(arr[5]); // 抛出ArrayIndexOutOfBoundsException ``` #### 五、数组的...
在JavaScript编程中,遍历数组以查找最大值和最小值是一项基本操作,广泛应用于数据分析、统计计算以及各种算法实现中。下面将详细讲解如何利用JavaScript实现这个功能,并提供相关的实例和技巧。 首先,我们来看...
在这个例子中,首先读取了`n`个整数并存储在一维数组`a`中,然后读取待查询的整数`x`,最后遍历数组`a`来统计`x`出现的次数。这种遍历数组的方式称为**顺序查找**。 #### 四、标记 在某些情况下,需要对数组中的...
在最坏的情况下,顺序查找需要比较10次才能确定20不存在于数组中。 而折半查找,又称为二分查找,只适用于已经排序的数组。它的基本思想是利用数组的有序性来减少查找次数。在给定的10个元素中,如果已按升序排列,...
在易语言中,处理数组是非常常见的操作,尤其是计算数组成员的出现次数是许多算法和数据处理任务的基础。这个"易语言取数组成员出现次数源码.rar"文件包含的源代码很可能是用来演示或教授如何在易语言中统计数组中各...
在IT领域,数组是编程语言中的基础数据结构之一,用于存储和操作一组同类型的数据元素。根据提供的代码片段,我们可以深入探讨数组的使用方法,尤其是针对一维和二维数组的初始化、赋值以及如何在实际场景中应用这些...
1. 错误的初始化语句是_ABD_,因为A选项字符串长度超过数组长度,B选项同样如此,D选项字符数组不能直接用字符串初始化。 2. 错误的引用是_B_,因为数组下标越界。 3. 正确的二维数组初始化语句是_B_,因为A和C...
数据list,结构为[{id:1,…},{id:2,…}],数据shoplist,结构为[{id:1,…},{id:2,…}],判断当shoplist.id等于list.id时显示list的数据。 .vue文件: <button @click=clickButtonShopList>click me<...
如果一个数组中存在相同的文本值,那么这些相同值的下标就代表了它们在数组中的位置。这个源码可以用于数据清洗、去重或者数据分析等场景,帮助我们找出数组中重复元素的具体位置,以便进行进一步的处理。 取数组中...
`size()`函数显示了它们的尺寸,数值数组`a`占用8字节,而字符串数组`b`占用2字节,尽管在MATLAB中字符串的尺寸表示为1x1,实际上它会占用额外的字节来存储字符信息。 在【例3.1.2-1】中,我们进一步了解了字符串...
接下来,我们再遍历第二个数组B,对于每个元素,如果它在哈希表中存在并且计数不为零,那么就将其添加到结果集合中,并将计数减一。这种方法的时间复杂度为O(n),因为每个元素只被访问一次。 具体步骤如下: 1. ...
例如,在上文提供的示例文本中,“a”在位置0,“b”在位置1,“c”在位置2,以此类推。此外,还需要记录每个字符相对于文本末尾形成的字符串(即半无限串),以便后续的排序操作。 2. **排序与索引构建**:接下来...