1
假设我有A
列表:如何将列表转换为类似的列表?
case class A(x: Int, y: Int)
val as = List(A(0, 0), A(0, 1), A(1, 0), A(1, 1))
我想将其转化为对(A, Set[A])
的列表,以便:
- 名单
as
- 在每一对
(a, set)
set
由as
这样的项目组成x
或y
作为a
例如:
val pairs = List(
A(0, 0) -> Set(A(0, 1), A(1, 0)),
A(0, 1) -> Set(A(0, 0), A(1, 1)),
A(1, 0) -> Set(A(0, 0), A(1, 1)),
A(1, 1) -> Set(A(0, 1), A(1, 0))
)
小列表已经够用了,谢谢。我只是想知道是否有可能比'O(N^2)'更有效地做到这一点' – Michael
我想我几乎没有。虽然你可以避免在最后使用可变映射进行分组和映射。 –
我非常喜欢不可变的集合。无论如何感谢您的建议。 – Michael