爪哇国新游记之四----用于计算并集交集差集的工具类
这个类利用了DArray类,还可以顺带讲述门面模式。
import array.DArray; public class CollectionUtil{ private CollectionUtil(){ // 避免用new生成类实例,可以没有 } // 并集 public static int[] union(int[] arr1,int[] arr2){ DArray d=new DArray(); // 找出在arr2中有而arr1中没有的,放到动态数组中 for(int i=0;i<arr2.length;i++){ if(exist(arr2[i],arr1)==false){ d.add(arr2[i]); } } // 把arr1中的加进来 for(int i=0;i<arr1.length;i++){ d.add(arr1[i]); } return d.getArray(); } // 判断一个数在一个数组中是否存在 private static boolean exist(int num,int[] arr){ for(int i=0;i<arr.length;i++){ if(num==arr[i]){ return true; } } return false; } // 交集 public static int[] intersact(int[] arr1,int[] arr2){ DArray d=new DArray(); // 找出在arr2中有而arr1中也有的,放到动态数组中 for(int i=0;i<arr2.length;i++){ if(exist(arr2[i],arr1)==true){ d.add(arr2[i]); } } return d.getArray(); } // 差集 public static int[] minus(int[] arr1,int[] arr2){ DArray d=new DArray(); // 找出在arr1中有而arr2中没有的,放到动态数组中 for(int i=0;i<arr2.length;i++){ if(exist(arr2[i],arr1)==false){ d.add(arr2[i]); } } return d.getArray(); } public static void main(String[] args){ int[] arr1={2,3,5,7,9}; int[] arr2={4,5,7,8}; int[] arrUnion=CollectionUtil.union(arr1, arr2); System.out.print("arrUnion:"); for(int i=0;i<arrUnion.length;i++){ System.out.print(arrUnion[i]+","); } System.out.println(); } }