2017-04-18 69 views
0

我有一段代码如下:从Scala.WrappedArray转换到列表<>

List<Integer> indexes = joinedCols 
      .map(x-> ((Tuple2)x)._1) 
      .collect(); 

    return indexes; 

我期望indexesList<Integer>类型然而,当我与调试器我看到检查它这是一种WrappedArray。因此,它的行为不像List,并且当我想要遍历返回的列表for (Integer i : indexes)时导致错误。在这种情况下,我如何返回底层列表作为List<Integer>的类型?

+0

不是一个解决方案,但我发现一个解决方法遍历列表像遍历(对象我:索引)。 – SpiderRico

+0

joinedCols的类型是什么? – puhlen

+0

@puhlen JavaPairRDD – SpiderRico

回答

1

然而,当我使用调试器检查它,我看这是一个类型的WrappedArray

你在调试器中看到的是价值,但它实现了List接口。因此它的行为如同List(但请注意,List接口中的许多操作都是可选的,并且在此不受支持)。

,并导致错误,当我想在返回的列表遍历了作为for (Integer i : indexes)

那是因为你通过转换成原始Tuple2去除类型的信息。假设你有一个JavaPairRDD<Integer, SomeType>,只要删除演员应该给你一个List<Integer>,并允许迭代这样。

相关问题