Логическое соединение для нескольких массивов

Есть несколько arraylists (количество arraylists априори неизвестно). В каждом массиве мне нужно найти элемент, который обеспечивает логическую связь с элементами из других списков. Обратите внимание, что сравнение выполняется только для ненулевых значений.

ArrayList<Integer[]> list1 = new ArrayList<Integer[]>();
ArrayList<Integer[]> list2 = new ArrayList<Integer[]>();
ArrayList<Integer[]> list3 = new ArrayList<Integer[]>();

list1.add(new Integer[]{1,2,3,4});
list1.add(new Integer[]{1,4,5,6});

list2.add(new Integer[]{1,4,null,null});

list3.add(new Integer[]{null,null,null,5});
list3.add(new Integer[]{null,null,null,6});

В этом случае ответ должен быть:

list1: {1,4,5,6}
list2: {1,4,null,null}
list3: {null,null,null,6}

Поскольку число arraylists неизвестно, я подумал, использовать рекурсию. Однако, возможно, могут быть более простые решения?

1 ответ

Решение

Похоже, вы могли бы использовать отличные библиотеки guava от Google. Проверь класс "Наборы".

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