我想平化Java中某种类型T元素的任意深度嵌套集合/结构,最佳使用
- 只有实时视图,没有复制集合;
- 不仅可以处理集合,还可以处理Iterator、任意维的T数组、Iterable以及任意混合和嵌套的所有这些结构;
- 静类型安全。
是否有一个java库可以处理这个?
Guava似乎只处理一个嵌套级别,即Collection<Collection<T>>
—flatten—> Collection<T>
。
lambdaj看起来很有希望:我能以某种方式组合on()
, asIterator()
和flattenIterator()
来实现这一点吗?以静态类型安全的方式?
Guava可能最终会支持这个:
http://code.google.com/p/guava-libraries/issues/detail?id=174(从下往上读可能是最容易的,因为在它的生命周期中,对它的思考已经改变了几次。)
不是基于上述任何一个,但可能是一个由Collection构造的DeepIterator类,该Collection的next()方法查看下一个对象,如果它是Collection的实例,则将当前迭代器压入堆栈并递归到该Collection的迭代器中。
我想这可能会有帮助:Arrays.deepToString(myCollection.toArray())