Библиотека Google Guava

Этот вопрос связан с ранее заданным. Как и было предложено, я пытаюсь использовать библиотеку Google Guava, чтобы найти пересечение множеств.

HashMap m1 = new HashMap();
m1.put(1, new Integer[]{1,2,3,4});
m1.put(2, new Integer[]{1,4,5,6});

HashMap m2 = new HashMap();
m2.put(1, new Integer[]{1,5,null,null});
m2.put(2, new Integer[]{1,4,null,null});

Теперь, насколько я понимаю, я должен применить функцию Guava recordsInCommon(), чтобы найти записи, которые появляются на обеих картах. Но я не понимаю, как я могу это сделать. Есть идеи? Благодарю.

ОБНОВЛЕНИЕ: ключи на картах

1 ответ

Добавление массивов целых чисел не будет работать в системе типов Java.

Когда ты сказал

Set<Integer> s1 = new HashSet<Integer>();
s1.add(new Integer[]{1,2,3,4});

то, что вы должны писать, это либо

Set<Integer> s1 = new HashSet<Integer>();
s1.add(1);
s1.add(2);
s1.add(3);
s1.add(4);

или возможно

Set<Integer> s1 = new HashSet<Integer>();
s1.addAll(Arrays.asList(1, 2, 3, 4));

После того, как вы сконструировали их, вы можете взять пересечение, используя retainAll() и тому подобное.

Другие вопросы по тегам