Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Intersection of java.util.Map

Is there a method in java.util.Map or any util to perform an intersection on two maps? (To intersect two maps by the "keys")

I am not able to find any. I can always implement my own intersection logic, but I was hoping there is already some operation in one of the java.util.* classes that would do this.

like image 601
mandy Avatar asked Nov 01 '12 15:11

mandy


2 Answers

How about:

Map map1 = ...; Map map2 = ...; Map result = new ...(map1); result.keySet().retainAll(map2.keySet()); 

or:

Map map1 = ...; Map map2 = ...; Set result = new ...(map1.keySet()); result.retainAll(map2.keySet()); 
like image 114
Martin Ellis Avatar answered Sep 23 '22 02:09

Martin Ellis


If you're using Guava, you can use Maps.difference to get a MapDifference object, from which you can extract the entriesInCommon() and entriesDiffering() as maps. (Disclosure: I contribute to Guava.)

like image 45
Louis Wasserman Avatar answered Sep 22 '22 02:09

Louis Wasserman