Библиотека 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() и тому подобное.