0

リストのリストをカスタマイズされたオブジェクト「ポイント」のリストに変換するためにScalaに取り組んでいます

class Point(val x: Int, val y: Int) {
   var cX: Int = x
   var cY: Int = y
  }  

この場合、Foreach を使用する必要がありますか、それとも Map または foreach を使用する必要がありますか

def list_To_Point(_listOfPoints :List[List[String]]) : List[Point] = { 

    var elem = 
    lazy val _list:  List[Point] = _listOfPoints.map(p=> new Point(p[0],p[1])
      _list
  }   

問題がどこにあるのか正確にわかりませんでしたか?

4

2 に答える 2

4
 def listToPoint(l:List[List[String]]):List[Point] = 
     l.collect({case x::y::Nil => new Point(x.toInt,y.toInt)})

しかし、基本的に何を表現するために List[String] を使用すべきではありませんか(Int,Int)…</p>

于 2013-11-04T20:10:51.707 に答える
1

地獄のように醜く、テストされていませんが、動作するはずです(構造を不変にすることを検討してください):

case class Point(x:Int,y:Int) 




object Point {


  def listToPoint(listOfPoints:List[List[String]]):List[Point] =
    listOfPoints.map(p => new Point(p(0).toInt,p(1).toInt))
}
于 2013-11-04T20:10:11.833 に答える