Java 使用.map功能更新scala不可变序列

Java 使用.map功能更新scala不可变序列,java,scala,coordinates,immutability,seq,Java,Scala,Coordinates,Immutability,Seq,我正在为一所大学做俄罗斯方块作业,在那里必须使用不变的数据结构 问题 我想做的是使用seq.map函数遍历seq的所有值,并用基于旧值的新值替换它们。由于某些原因,这与我在网上看到的示例不一样。我做错了什么 class Point(x : Int, y : Int) { } val bodyPosition: Seq[Point] = Seq[Point](new Point(-1,0), new Point(0,0), new Point(1,0), new Point(2,0)) bod

我正在为一所大学做俄罗斯方块作业,在那里必须使用不变的数据结构

问题

我想做的是使用seq.map函数遍历seq的所有值,并用基于旧值的新值替换它们。由于某些原因,这与我在网上看到的示例不一样。我做错了什么

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

}

val bodyPosition: Seq[Point] = Seq[Point](new Point(-1,0), new Point(0,0), new Point(1,0), new Point(2,0))
bodyPosition.map(map => {new Point(-map.y, map.x)})

seq中的数据保持不变。

“是的,因为它是不可变的,这就是重点。但是,如果你仔细观察地图,你会发现地图返回了一个新的集合,所以你只需将它分配给某个变量——路易斯·米格尔·梅西亚·苏亚雷斯。”


“是的,因为它是不可变的,这就是重点。但是,如果你靠近地图,你会看到地图返回一个新的集合,所以你只需将它分配给某个变量——路易斯·米格尔·梅西亚·苏亚雷斯”


是的,因为它是不可变的,这就是重点。但是,如果您仔细查看(文档)[您将看到
map
返回一个新集合,因此您只需将其分配给某个变量,如
val newBodyPosition=bodyPosition.map(…)
BTW,您不需要
map
中看起来很糟糕的大括号。您可以
seq.map(x=>y)
seq.map{x=>y}
-另外,
Point
应该是一个案例类。您应该提供一个使用此类评估的示例,然后我们可以帮助您应用不可变集合是的,因为它是不可变的,这就是重点。但是,如果您仔细查看(文档)[您将看到
map
返回一个新集合,因此您只需将其分配给一些变量,如
val newBodyPosition=bodyPosition.map(…)
BTW,您不需要在
map
中使用看起来很糟糕的大括号。您可以
seq.map(x=>y)
seq.map{x=>y}
-另外,
可能应该是一个案例类。您应该提供此类评估的使用示例,然后我们可以帮助您应用不可变集合
base class Point(x : Int, y : Int){}

class Gamelogic(){
  val bodyPosition: Seq[Point] = Seq[Point](new Point(-1,0),
             new Point(0,0), new Point(1,0), new Point(2,0))
        
  val newBodyPosition = bodyPosition.map(map => {new Point(-map.y, map.x)})
}