【问题标题】:Scala: Swapping two key values in a collection?Scala:交换集合中的两个键值?
【发布时间】:2017-12-25 13:02:45
【问题描述】:

我有一个 val 指向从 HDFS 中的文件读取的大量记录。我们称这个 val 为“a”。 'a' 有一堆记录,它们都包含这 3 个属性:SRC、DEST、ACT。我需要克隆“a”,但在每条记录中交换 SRC 和 DEST 键的值。我该如何在scala中做到这一点?我尝试了 map 函数的不同变体,但似乎无法使其正常工作。

【问题讨论】:

  • 描述您的问题的词语很好。展示您的问题的代码更好。

标签: scala


【解决方案1】:

好吧,没有代码示例,我猜测您的需求和先决条件,但这样的事情可能会起作用:

case class Record(src: String, dest: String, act: String)

val a = List(
    Record("srcA", "destA", "actA"),
    Record("srcB", "destB", "actB"),
    Record("srcC", "destC", "actC"),
    Record("srcD", "destD", "actD"),
    Record("srcE", "destE", "actE"),
)

val b = a.map(r => Record(r.dest, r.src, r.act))

println(a)
// => List(Record(srcA,destA,actA), Record(srcB,destB,actB), Record(srcC,destC,actC), Record(srcD,destD,actD), Record(srcE,destE,actE))

println(b)
// => List(Record(destA,srcA,actA), Record(destB,srcB,actB), Record(destC,srcC,actC), Record(destD,srcD,actD), Record(destE,srcE,actE))

【讨论】:

  • @CN 如果我的回答对你有帮助,请采纳。否则,请提供有关您的问题的更多信息。
  • 在您发布此内容之前我已经想通了,但这与我所做的非常相似。无论如何谢谢:)
猜你喜欢
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
相关资源
最近更新 更多