Scala:修改TreeMap中的值

时间:2015-04-23 07:49:54

标签: scala scala-collections

这是一个Scala新手问题。

我将一些数据存储在.row-no-padding { [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; } } 中,其中值继续修改。例如,在下面的类中有一个地图,其中包含发送到市场的订单,我想跟踪订单数量和每个价格。此地图将在每个进入市场的订单中发生变化。

TreeMap

现在,当新订单的价格为100时,我可以将其添加到地图上。

class MyData {
    // Price -> Quantity map
    var orders: TreeMap[Int, Int] = TreeMap.empty
}

现在,价格5的订单已修改为100.如何使用var a = new MyData; // new order at price 5 with qty 200 a.orders += (5 -> 200) 执行此操作?

TreeMap

2 个答案:

答案 0 :(得分:2)

嗯...... TreeMap可以在scala.collection.immutable包中找到。

请注意immutable事。所以TreeMap是不可变的数据结构,这意味着......你不能就地修改它。没有插入,没有更新,根本没有变化。但是你可以通过应用这些修改来获得它的另一个副本。

所以......要修改,您必须将a.orders重新分配给修改过的副本。

a.orders = a.orders + ( 5, 100 )

答案 1 :(得分:2)

如果您想要一个可变结构,可以使用scala.collection.mutable.Map代替TreeMap