I would like to flatten arbitrary deeply nested collections/structures of elements of some type T in Java, optimally with
only having a live view and not a copied collection;
not only handling Collections, but also Iterator, arrays of T of arbitrary dimension, Iterable, and all these structures arbitrarily mixed and nested;
statical type-safety.
Is there a java library which can handle this?
Guava seems to only handle one nesting level, i.e. Collection> --flatten--> Collection.
lambdaj looks promising: can I somehow combine on(), asIterator() and flattenIterator() to achieve this? In a statically type-safe manner?
解决方案
Guava will probably support this eventually :
(It might be easiest to read that from the bottom up, since the thinking on it has shifted a few times over its lifetime.)