zoukankan      html  css  js  c++  java
  • Java求字符串数组交集、并集和差集

    //求两个字符串数组的并集,利用set的元素唯一性   
        public static String[] union(String[] arr1, String[] arr2) {   
            Set<String> set = new HashSet<String>();   
            for (String str : arr1) {   
                set.add(str);   
            }   
            for (String str : arr2) {   
                set.add(str);   
            }   
            String[] result = {};   
            return set.toArray(result);   
        }   
      
        //求两个数组的交集   
        public static String[] intersect(String[] arr1, String[] arr2) {   
            Map<String, Boolean> map = new HashMap<String, Boolean>();   
            LinkedList<String> list = new LinkedList<String>();   
            for (String str : arr1) {   
                if (!map.containsKey(str)) {   
                    map.put(str, Boolean.FALSE);   
                }   
            }   
            for (String str : arr2) {   
                if (map.containsKey(str)) {   
                    map.put(str, Boolean.TRUE);   
                }   
            }   
      
            for (Entry<String, Boolean> e : map.entrySet()) {   
                if (e.getValue().equals(Boolean.TRUE)) {   
                    list.add(e.getKey());   
                }   
            }   
      
            String[] result = {};   
            return list.toArray(result);   
        }   
      
        //求两个数组的差集   
        public static String[] minus(String[] arr1, String[] arr2) {   
            LinkedList<String> list = new LinkedList<String>();   
            LinkedList<String> history = new LinkedList<String>();   
            String[] longerArr = arr1;   
            String[] shorterArr = arr2;   
            //找出较长的数组来减较短的数组   
            if (arr1.length > arr2.length) {   
                longerArr = arr2;   
                shorterArr = arr1;   
            }   
            for (String str : longerArr) {   
                if (!list.contains(str)) {   
                    list.add(str);   
                }   
            }   
            for (String str : shorterArr) {   
                if (list.contains(str)) {   
                    history.add(str);   
                    list.remove(str);   
                } else {   
                    if (!history.contains(str)) {   
                        list.add(str);   
                    }   
                }   
            }   
      
            String[] result = {};   
            return list.toArray(result);   
        }   
  • 相关阅读:
    MySQL批量UPDATE多行记录
    qt 标准对话框
    qt creator 源代码中含有中文编译报错
    qt编译mysql插件
    win7自动登录桌面
    编译QtAV工程库
    Qt Creator 中关于调试器的设置
    QtCreator 添加第三方头文件库文件路径
    Qt 安装一个Service
    Qt 添加启动项
  • 原文地址:https://www.cnblogs.com/libaoting/p/20131024zfc.html
Copyright © 2011-2022 走看看