Подтвердить что ты не робот

Сплошное спряжение вложенных коллекций/структур в Java

Я хотел бы сгладить произвольные глубоко вложенные коллекции/структуры элементов некоторого типа T в Java, оптимально с помощью

  • имеет только просмотр в реальном времени, а не скопированную коллекцию;
  • не только обрабатывает коллекции, но и итераторы, массивы T произвольной размерности, итерации и все эти структуры произвольно смешанные и вложенные;
  • статический тип безопасности.

Есть ли библиотека java, которая может справиться с этим?


Guava, похоже, обрабатывает только один уровень вложенности, т.е. Collection<Collection<T>> --flatten → Collection<T>.

lambdaj выглядит многообещающим: могу ли я каким-то образом объединить on(), asIterator() и flattenIterator(), чтобы достичь этого? Статически безопасным способом?

4b9b3361

Ответ 1

Guava, вероятно, поддержит это в конечном итоге:

http://code.google.com/p/guava-libraries/issues/detail?id=174

(Проще всего было бы прочитать это снизу вверх, так как мышление на нем несколько раз переместилось за время его существования.)

Ответ 2

Не основывается ни на одном из вышеперечисленных, но, возможно, на классе DeepIterator, который создается с помощью Collection, метод next() которого смотрит на следующий объект, и если он является экземпляром Collection, то толкает текущий итератор на Stack и возвращает в это Итериальный сборщик.

Ответ 3

Я думаю, это может помочь: Arrays.deepToString(myCollection.toArray())