Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多级哈希映射中的键收集到Scala中的有序ListBuffer_Scala_Hashmap_Listbuffer - Fatal编程技术网

将多级哈希映射中的键收集到Scala中的有序ListBuffer

将多级哈希映射中的键收集到Scala中的有序ListBuffer,scala,hashmap,listbuffer,Scala,Hashmap,Listbuffer,我有一个HashmapH1,包含以下组件: H1: 键1:Int 值1:Hashmap H2 H2: 键2:Int 值2:多种类型的对象 我的目标是以最快的方式有序地收集H1中H2s的所有键 例如: (35->((3->obj1),(4->obj2)), 36->((4->obj3),(6->obj4)), 37->((5->obj5),(3->obj6))) 我会有一个列表缓冲区(3,4,5,6),H1可能会变大。这应该可以: h1M

我有一个
Hashmap
H1,包含以下组件:

H1:
键1:
Int

值1:
Hashmap H2

H2:
键2:
Int

值2:多种类型的对象

我的目标是以最快的方式有序地收集H1中H2s的所有键

例如:

(35->((3->obj1),(4->obj2)), 
36->((4->obj3),(6->obj4)), 
37->((5->obj5),(3->obj6)))
我会有一个
列表缓冲区(3,4,5,6)
,H1可能会变大。

这应该可以:

h1Map
  .valuesIterator
  .flatMap(_.keysIterator)
  .distinct
  .toList
  .sorted
如果您确实需要一个可变的列表缓冲区,您可以使用
列表
更改为[ListBuffer]
(如果您在
2.12-
)或
更改为(ListBuffer)
(如果您在
2.13+
)。

不过,我建议您尽量避免可变集合,而坚持使用不可变集合。

谢谢,它确实奏效了。我正在为预先存在的算法添加一个特性,ListBuffer用于大多数结构和方法输入,我不想进行所有的重构。结果实际上是一种广泛使用的已有方法的输入。