gpt4 book ai didi

java - Scala.List 和 Java.util.List 之间的互操作

转载 作者:行者123 更新时间:2023-12-01 11:42:08 28 4
gpt4 key购买 nike

我是 Scala 新手。我正在使用 Google guava 库 Collections2.permutations() 方法,该方法将 java.util.Collection 集合

作为输入

我有以下代码,改编 self 编写的相应 Java 程序。

import java.util

import com.google.common.collect.Collections2
import collection.JavaConversions._

class OptimalTSP {

def distance(point1: Point, point2: Point): Double = {
Math.sqrt(Math.pow(point2.y - point1.y, 2) + Math.pow(point2.x - point1.x, 2))
}

def findCheapestPermutation(points: java.util.List[Point]): java.util.List[Point] = {
var cost: Double = Double.MaxValue
var minCostPermutation: java.util.List[Point] = null
val permutations: util.Collection[java.util.List[Point]] = Collections2.permutations(points)
import scala.collection.JavaConversions._
for (permutation <- permutations) {
val permutationCost: Double = findCost(permutation)
if (permutationCost <= cost) {
cost = permutationCost
minCostPermutation = permutation
}
}
println("Cheapest distance: " + cost)
minCostPermutation
}
}

以上工作正常,但明确需要完整的包名称java.util.List。有没有更惯用的 scala 方法来执行此操作,即将 scala List 传递到需要 Java Collection 的方法?

最佳答案

更惯用的是,您可以尝试使用 permutationsminBy:

 points.permutations.minBy(permutation => findCost(permutation))
points.permutations.minBy(findCost) //equivalent

关于java - Scala.List 和 Java.util.List 之间的互操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439910/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com