1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
import scala.collection.JavaConversions._
import scala.collection.mutable
object Test extends App {
def testMap(): Unit = {
val mapJ = new java.util.HashMap[Int, String]
val mapS: mutable.Map[Int, String] = mapJ
(10 to 20).foreach(i => mapS += ((i, i.toString)))
assert(11 == mapS.size)
// ConcurrentModificationException thrown in the following line
mapS.retain((i, str) => i % 2 == 0)
assert(6 == mapS.size)
}
def testSet(): Unit = {
val mapJ = new java.util.HashSet[Int]
val mapS: mutable.Set[Int] = mapJ
(10 to 20).foreach(i => mapS += i)
assert(11 == mapS.size)
// ConcurrentModificationException thrown in the following line
mapS.retain((i) => i % 2 == 0)
assert(6 == mapS.size)
}
testSet()
testMap()
}
|