在Scala中创建列表容器对象的最佳方法

在Scala中创建列表容器对象的最佳方法,scala,Scala,下面是一个场景。我正在Scala中创建一个简单的会话处理程序,我需要一个可以存储列表的类。该类需要与之关联的其他函数才能正常运行 我将通过会话ID访问会话 我很少浏览这个列表 我将不断地在列表中添加和删除 我的问题是: 在这种情况下,什么是合适的Scala对象? 从Scala对象中添加或删除实体的最佳方式是什么? 我是Scala的新手,所以请原谅我可能会问的基本问题。任何帮助都将不胜感激 编辑:添加到所有…线程安全性是一个因素。使用的对象必须是线程安全的,或者在按会话ID添加和删除项目时必须易于

下面是一个场景。我正在Scala中创建一个简单的会话处理程序,我需要一个可以存储列表的类。该类需要与之关联的其他函数才能正常运行

我将通过会话ID访问会话 我很少浏览这个列表 我将不断地在列表中添加和删除

我的问题是:

在这种情况下,什么是合适的Scala对象? 从Scala对象中添加或删除实体的最佳方式是什么? 我是Scala的新手,所以请原谅我可能会问的基本问题。任何帮助都将不胜感激

编辑:添加到所有…线程安全性是一个因素。使用的对象必须是线程安全的,或者在按会话ID添加和删除项目时必须易于考虑线程安全。

您可以使用java.util.concurrent.ConcurrentHashMap-它在保证线程安全的情况下具有最佳性能

您可以使用java.util.concurrent.ConcurrentHashMap-它在保证线程安全的情况下具有最佳性能

您可以使用添加和删除操作所需的时间是固定的

一旦这个集合是不可变的,您就需要学习scala处理集合的方法,以及如何处理状态等等。也许您需要更改处理集合的方式,但这样您就不必担心并发性。

您可以使用添加和删除操作所需的时间是固定的

val list = new List(1,2,3,4,5,6,7,8,9,10)

一旦这个集合是不可变的,您就需要学习scala处理集合的方法,以及如何处理状态等等。也许您需要更改处理集合的方式,但这样您就不必担心并发性。

是否要预结束/追加项,或者你要在任意位置插入/删除它们?因为我将通过会话ID获取,所以无论我如何添加项目,它都将在任意位置插入/删除。会话ID将是UUID,因此它们不会被排序。om-nom-nom要求这样做,因为在前面添加列表的成本非常低,而在其他任何地方添加都会导致成本n作为插入点。您是要预结束/追加项目,还是要在任意位置插入/删除项目?因为我将通过会话ID获取项目,所以无论我如何添加项目,都将在任意位置插入/删除项目。会话ID将是UUID,因此它们不会被排序。om-nom-nom问到这一点,因为在前面添加列表的成本非常低,而在其他地方添加列表的成本是n作为插入点。为什么不呢?ConcurrentMap是Scala collections库中的一个特点。目前,它的唯一实现是Java的Java.util.concurrent.ConcurrentMap.scala.collection.concurrent.TrieMap比Java.util.concurrent.ConcurrentHashMap更好,因为scala 2.10为什么不呢?ConcurrentMap是scala collections库中的一个特性。目前,它唯一的实现是Java的Java.util.concurrent.ConcurrentMap.scala.collection.concurrent.TrieMap,自scala 2.10以来,它比Java.util.concurrent.ConcurrentHashMap更好
val list = new List(1,2,3,4,5,6,7,8,9,10)