求两集合的交集与并集

来源:互联网 发布:小米路由器域名重定向 编辑:程序博客网 时间:2024/05/24 06:08

方法1:


import java.util.ArrayList;public class Demo1 {//求两个集合的交集和并集public static void main(String[] args) {String[] arr1 = new String[]{"abc", "df", "abc"};String[] arr2 = new String[]{"abc", "cc", "df", "d", "abc"};ArrayList<String> list = new ArrayList<String>();//求交集System.out.println("交集为:");for(int i=0;i<arr1.length;i++){for(int j=0;j<arr2.length;j++){if(arr1[i].equals(arr2[j])){list.add(arr1[i]);break;}}}//for//去掉重复字符串for(int i=0;i<list.size();i++){for(int j=i+1;j<list.size();j++){if(list.get(j).equals(list.get(i))){continue;}System.out.print(list.get(i)+" ");}}System.out.println();System.out.println("-----------");//求并集System.out.println("并集为:");    ArrayList<String> list1 = new ArrayList<String>();    //将arr1数组中元素 不重复的添加到list1中    for(int i=0;i<arr1.length;i++){    if(list1.size()==0){    list1.add(arr1[0]);    }    for(int j=0;j<list1.size();j++){    if(arr1[i].equals(list1.get(j))){    break;    }    if(j==list1.size()-1){    list1.add(arr1[i]);    }    }    }    //将arr2数组中元素 不重复的添加到list1中    for(int i=0;i<arr2.length;i++){    if(list1.size()==0){    list1.add(arr1[0]);    }    for(int j=0;j<list1.size();j++){    if(arr2[i].equals(list1.get(j))){    break;    }    if(j==list1.size()-1){    list1.add(arr2[i]);    }    }    }        //输出    for(int i=0;i<list1.size();i++){    System.out.print(list1.get(i)+" ");    }}}



方法2:


import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class Demo2 {//public static void main(String[] args) {String[] arr1 = new String[]{"abc", "df", "abc"};String[] arr2 = new String[]{"abc", "cc", "df", "d", "abc"};//求交集System.out.println("并集为:");Set set = new HashSet<String>();ArrayList<String> list = new ArrayList<String>();for(String str:arr1){//利用set的元素的唯一性set.add(str);}for(String str:arr2){set.add(str);}String[] result = {};String[] result_union = (String[]) set.toArray(result);for(String str:result_union){System.out.print(str+" ");}System.out.println();System.out.println("---------");//求交集System.out.println("交集为:");Map map = new HashMap<String, Boolean>();//将arr1所有的元素入mapfor(int i=0;i<arr1.length;i++){if(!map.containsKey(arr1[i])){map.put(arr1[i], Boolean.FALSE);}}//如果arr2存在于arr1相等的字符串,则将该字符串的value置为truefor(int i=0;i<arr2.length;i++){if(map.containsKey(arr2[i])){map.put(arr2[i], Boolean.TRUE);}}Iterator it1 = map.entrySet().iterator();while(it1.hasNext()){Entry<String, Boolean> entrys = (Entry<String, Boolean>) it1.next();Boolean value = entrys.getValue();if(value.equals(Boolean.TRUE)){list.add(entrys.getKey());}}//输出for(String str:list){System.out.print(str+" ");}}}



0 0
原创粉丝点击