查找在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; }}
相关资源:linux下利用/proc进行进程树的打印