方法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)+" ");
}
}
}
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所有的元素入map
for(int i=0;i<arr1.length;i++){
if(!map.containsKey(arr1[i])){
map.put(arr1[i], Boolean.FALSE);
}
}
//如果arr2存在于arr1相等的字符串,则将该字符串的value置为true
for(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+" ");
}
}
}