gpt4 book ai didi

scala - 为什么 'toSet' 方法会混淆 ListBuffer 中元素的顺序?

转载 作者:行者123 更新时间:2023-12-01 23:01:16 29 4
gpt4 key购买 nike

在scala中,为什么toSet()方法混淆了集合中元素的顺序(ListBuffer)?

我可以使用哪个集合来确保每个元素的唯一性并保持其原始顺序?

最佳答案

因为set抽象,是 traversable 的子类, 不能保证以下元素的顺序:

A traversable class might or might not have two properties: strictness and orderedness. Neither is represented as a type.
...
If the class is not ordered, foreach can visit elements in different orders for different runs (but it will keep the same order in the same run).'

更准确地了解为什么元素会“错位”: toSet方法从一些现有的集合中构造一个新的集合。它为这个新的集合集合使用默认的集合实现。默认设置实现基于哈希表。在哈希表中,元素的顺序是不确定的。

关于scala - 为什么 'toSet' 方法会混淆 ListBuffer 中元素的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7475868/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com