Java求字符串数组交集、并集和差集
2013-10-24 14:51
495 查看
//求两个字符串数组的并集,利用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); }
相关文章推荐
- JAVA求字符串数组交集、并集和差集
- JAVA程序:字符串数组交集、并集和差集
- JAVA求字符串数组交集、并集和差集
- JAVA程序:字符串数组交集、并集和差集
- Java求字符串数组交集 并集 差集 去重复并集
- JAVA求字符串数组交集、并集和差集
- JAVA求字符串数组交集、并集和差集
- PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重
- PHP数组的几个操作,求并集,交集,差集,数组与字符串的相互转换及数组去重
- 【Java】实现浮点数组的并集以及整型数组的交集和两个字符串数组的逆序排序
- Java实现数组的交集、并集、差集
- java求两个数组的并集、交集、差集
- java数组的交集、并集、差集
- String[] 字符串数组交集、并集、差集
- JS数组交集、并集、差集的示例代码
- Java中list集合的交集和差集的用法和如何将数组转换为集合的方法
- 列出两个数组中相同的字符(字符串组成数组)(数组的交集、差集)
- java list 交集 并集 差集 去重复并集
- java list 交集 并集 差集 去重复并集
- c#数组的交集,差集,并集