1. 程式人生 > 實用技巧 >Java Map 求交集 並集 差集

Java Map 求交集 並集 差集

import com.google.common.collect.MapDifference;
import com.google.common.collect.Maps;

import java.util.Map;

public class MapUtil {

/**
* difference
* Maps.difference(Map, Map)用來比較兩個Map以獲取所有不同點。該方法返回MapDifference物件
*/
public static void u(Map<String,Object> map1, Map<String,Object> map2) {
MapDifference<String, Object> difference = Maps.difference(map1, map2);
// 是否有差異,返回boolean
boolean areEqual = difference.areEqual();
System.out.println("比較兩個Map是否有差異:" + areEqual);
// 兩個map的交集
Map<String, Object> entriesInCommon = difference.entriesInCommon();
System.out.println("兩個map都有的部分(交集)===:" + entriesInCommon);
// 鍵相同但是值不同值對映項。返回的Map的值型別為MapDifference.ValueDifference,以表示左右兩個不同的值
Map<String, MapDifference.ValueDifference<Object>> entriesDiffering = difference.entriesDiffering();
System.out.println("鍵相同但是值不同值對映項===:" + entriesDiffering);
// 鍵只存在於左邊Map的對映項
Map<String, Object> onlyOnLeft = difference.entriesOnlyOnLeft();
System.out.println("鍵只存在於左邊Map的對映項:" + onlyOnLeft);
// 鍵只存在於右邊Map的對映項
Map<String, Object> entriesOnlyOnRight = difference.entriesOnlyOnRight();
System.out.println("鍵只存在於右邊Map的對映項:" + entriesOnlyOnRight);
}
}