1. 程式人生 > >Java之兩個Set集合的交集、差集和並集

Java之兩個Set集合的交集、差集和並集

一、求交集

注:場景是讀取兩個檔案,把檔案內容放到Set中,求兩個檔案之間的共同元素。在這裡只寫對Set的操作。

public static void main(String[] args) throws Exception {
		String path1 = "path1";
		String path2 = "path2";
		Set<String> set1 = readFile(path1);
		Set<String> set2 = readFile(path2);
		Set<String> set = new HashSet<String>();
		set.addAll(set1);
		set.retainAll(set2);
		System.out.println(set);
	}

二、求差集

1)、獲取在set1而不在set2中的元素

public static void main(String[] args) throws Exception {
		String path1 = "path1";
		String path2 = "path2";
		Set<String> set1 = readFile(path1);
		Set<String> set2 = readFile(path2);
		Set<String> set = new HashSet<String>();
		set.addAll(set1);
		set.removeAll(set2);
		System.out.println(set);
	}

2)、獲取在set2不在set1中的元素

public static void main(String[] args) throws Exception {
		String path1 = "path1";
		String path2 = "path2";
		Set<String> set1 = readFile(path1);
		Set<String> set2 = readFile(path2);
		Set<String> set = new HashSet<String>();
		set.addAll(set2);
		set.removeAll(set1);
		System.out.println(set);
	}

三、求並集

public static void main(String[] args) throws Exception {
		String path1 = "path1";
		String path2 = "path2";
		Set<String> set1 = readFile(path1);
		Set<String> set2 = readFile(path2);
		Set<String> set = new HashSet<String>();
		set.addAll(set2);
		set.addAll(set1);
		System.out.println(set);
	}