• 爪哇国新游记之四----用于计算并集交集差集的工具类


    这个类利用了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();
            
        }
    }
  • 相关阅读:
    Transcation And Lock--SQL SERVER 事务隔离级别
    Transaction And Lock--常用的查询事务和锁的语句
    使用shell读取文本文件发送到kafka
    VIM打开shell脚本中文乱码解决
    shell中日期操作
    oozie常见错误问题
    error: No implicit Ordering defined for Any
    启动mysql时显示:/tmp/mysql.sock 不存在的解决方法
    mysql中创建用户和赋权限
    (转)maven3.3.9编译oozie4.3.0
  • 原文地址:https://www.cnblogs.com/heyang78/p/3867302.html
Copyright © 2020-2023  润新知