zoukankan      html  css  js  c++  java
  • 爪哇国新游记之四----用于计算并集交集差集的工具类

    这个类利用了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();
            
        }
    }
  • 相关阅读:
    利用python 传输文件
    SVN 操作报错 “Previous operation has not finished; run 'cleanup' if it was interrupted“
    Java IP白名单相关工具类
    Truncated class file 问题的解决
    Linux 文件压缩与解压相关
    MyEclipse 根据左括号或右括号查找另外一半
    100个常用的linux命令(转)
    Java 编码规范(转)
    MyEclipse 远程调试Tomcat
    Extjs header column 自定义排序规则
  • 原文地址:https://www.cnblogs.com/heyang78/p/3867302.html
Copyright © 2011-2022 走看看