Эта проблема известна как объединение отсортированных массивов.В Java это довольно просто решить.Просто добавьте элементы в sortedSet (добавление в отсортированный набор происходит быстро).И остановитесь, когда достигнете вершины 1000.
SortedSet<Integer> s = new TreeSet<>();
//s1,s2,s3 are the input lists here
int n = Math.max(Math.max(s2.size(), s1.size()), s3.size());
for (int i = 0; i < n || s.size() <= limit; i++) {
if (s1.get(i) != null) {
s.add(s1.get(i));
}
if (s2.get(i) != null) {
s.add(s2.get(i));
}
if (s3.get(i) != null) {
s.add(s3.get(i));
}
}