У меня есть два заказанных набора Integer
s - SortedSet<Integer>
, назовите их set1
и set2
. Мне нужно найти объединение этих множеств и вернуть ограничение смещения 10 подмножества 10. Что я имею в виду?Смещение и предел для набора
Set1:
1,2,5,6,7,8,11,21,23,543,1002
Set2:
11,12,15,16,17,8,111,121,123,1543,11002
Union:
1,2,5,6,7,8,11,21,23,543,1002,12,15,16,17,111,121,123,1543,11002
Union offset 10 limit 10:
1002,12,15,16,17,111,121,123,1543,11002
Обратите внимание, что из 8
кардинальность и 11
в союзе является 1
.
Я ищу алгоритм, который позволяет мне не загружать все наборы в память (поскольку эти наборы могут быть довольно большими, я не буду тратить ресурсы сервера). Есть ли способ сделать это? Может быть, могут помочь некоторые мгновенные библиотеки, например commons
или guava
?
UPD: Я сам не использую Java 8, но решение, использующее его, также интересно.
Вы не можете удалить дубликаты из set2 без загрузки set1 в память (или восстановить все значение set1 для каждого номера в set2, что, вероятно, очень неэффективно с точки зрения производительности) ... – assylias
@assylias - Удаление дубликатов не является целью, это реализация. См. Мой ответ для «ленивого» подхода. – Amit