10

我想展平Java中某种类型T的任意深度嵌套的集合/结构,最好使用

  • 只有实时视图而不是复制的集合;
  • 不仅处理Collection,还处理Iterator,任意维度的T数组,Iterable,以及所有这些任意混合嵌套的结构;
  • 静态类型安全。

有没有可以处理这个的java库?


Guava似乎只处理一个嵌套级别,即Collection<Collection<T>>--flatten--> Collection<T>

lambdaj看起来很有希望:我可以以某种方式结合on(),asIterator()flattenIterator()实现这一目标吗?以静态类型安全的方式?

4

3 回答 3

2

Guava最终可能会支持这一点:

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

(从下往上阅读可能是最容易的,因为对它的思考在其一生中已经改变了几次。)

于 2011-09-16T03:57:51.333 回答
1

不是基于上述任何一个,但可能是一个 DeepIterator 类,它由 Collection 构造,其 next() 方法查看下一个 Object,如果它是一个 instanceof Collection,则将当前迭代器推入 Stack 并递归到该 Collection 的迭代器中。

于 2011-09-15T13:48:45.717 回答
0

我认为这可能会有所帮助:Arrays.deepToString(myCollection.toArray())

于 2011-09-15T13:34:11.543 回答