えー今更Guava-?キモーイ!Guavaの記事が許されるのは2012年までだよねー!キャハハハ!
みたいな反応が無いかgkbrしながらも、ちょっといじる機会があったので。
いやGuava全然まだ開発されてるんですけども。
AとBのSetがあってAにあってBにないもの、BにあってAにないものを抽出したい、そんなとき使えるのがSetsのdifferenceメソッドさんです。
Set<String> testSet1 = new HashSet<>(); testSet1.add("a"); testSet1.add("b"); testSet1.add("c"); Set<String> testSet2 = new HashSet<>(); testSet2.add("b"); testSet2.add("c"); testSet2.add("d"); testSet2.add("e"); Set<String> diff1 = Sets.difference(testSet1, testSet2); Set<String> diff2 = Sets.difference(testSet2, testSet1);
このようにすると、以下のような結果が返ってきます。
diff1:[a] diff2:[d, e]
べんり!
両方に含まれるものを抽出する場合はintersectionメソッドさんを使います。
Set<String> intersection = Sets.intersection(testSet1, testSet2);
結果は以下の通り。
intersection:[b, c]
捗る。やっぱりGuavaさんすてき。