Логическое соединение для нескольких массивов
Есть несколько 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. Проверь класс "Наборы".