2017-04-18 507 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>,並允許迭代這樣。

相關問題