【问题标题】:How to iterate a list of Pair with Scala?如何使用 Scala 迭代 Pair 列表?
【发布时间】:2015-10-26 11:39:02
【问题描述】:

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

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

当我使用for&lt;- 进行迭代时,我无法获取Pair 实例,也无法获取Pair 的属性。

【问题讨论】:

  • 我认为您需要添加更多上下文,例如JList 是什么,indexCols 是什么意思?
  • 发布编译代码所需的所有内容通常是个好主意。如果我们需要 import 某事,则尤其如此。

标签: list scala loops


【解决方案1】:

我假设JList 这里是java swing 组件。如果是这种情况,那么据我所知,您不能直接在理解中使用它。相反,您需要执行以下操作:

import scala.collection.JavaConversions._

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

导入会引入从 Java 集合转换为 Scala 集合的隐式。您将需要这个,因为您使用的 for-comprehension 已被取消为 foreach 方法调用,而 java.util.List 未定义 foreach 方法。

【讨论】:

    【解决方案2】:

    增加杰森的答案。通常建议使用JavaConverters 而不是JavaConversions 以避免nasty issues。它有点冗长,但更安全。

    解决方案是这样的:

    import scala.collection.JavaConverters._
    
    for (pair <- list.asScala.getSelectedValuesList) {
      //do something with pair 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 2018-04-01
      • 2014-07-21
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多