如何迭代与Scala配对的列表?

时间:2015-10-24 02:21:56

标签: list scala loops

我想迭代Pair个对象的列表,但有一些问题。如下变量:

val list: JList[Pair[Integer, Integer]]
for (pair <- list){
    //how to get first value and second value of pair instance
}

当我使用for<-进行迭代时,我无法获取Pair实例,并且无法获取Pair的属性。

2 个答案:

答案 0 :(得分:3)

我假设JList这里是java swing组件。如果是这种情况,那么就我所知,你不能直接在for-comprehension中使用它。相反,你需要做类似的事情:

import scala.collection.JavaConversions._

for (pair <- list.getSelectedValuesList) {
  //do something with pair 
}

导入会产生从Java集合转换为Scala集合的implicits。您需要这样做,因为您使用的for-comprehension对foreach方法调用进行了去糖,并且java.util.List没有定义foreach方法。

答案 1 :(得分:0)

增加Jason的答案。通常建议使用JavaConverters代替JavaConversions来避免nasty issues。它有点冗长,但更安全。

解决方案是这样的:

import scala.collection.JavaConverters._

for (pair <- list.asScala.getSelectedValuesList) {
  //do something with pair 
}