Elixir映射集vs Enum.member?
我只需要保留唯一的值,我不知道应该使用哪种数据结构。稍后我将只阅读整个数据结构Elixir映射集vs Enum.member?,elixir,Elixir,我只需要保留唯一的值,我不知道应该使用哪种数据结构。稍后我将只阅读整个数据结构 一种方法是使用只包含唯一元素的MapSet 第二种方法是每次使用Enum.member?检查项目是否已经存在,但我可以通过MapSet轻松保证这一点 我不确定在这种情况下使用哪种方法更好。哪个更有效,哪个更实用?如果您将数据保存在地图集中,那么Enum.member?实际上会在下面调用MapSet.member?,因此您将拥有MapSet的所有优点。您可以看到相关的协议实现。我认为您混淆了数据结构和。MapSet
- 一种方法是使用只包含唯一元素的
MapSet
- 第二种方法是每次使用
检查项目是否已经存在,但我可以通过Enum.member?
轻松保证这一点MapSet
我不确定在这种情况下使用哪种方法更好。哪个更有效,哪个更实用?如果您将数据保存在
地图集中,那么Enum.member?
实际上会在下面调用MapSet.member?
,因此您将拥有MapSet
的所有优点。您可以看到相关的协议实现。我认为您混淆了数据结构和。MapSet是实现协议的数据结构(和模块)。您可以调用地图集,但这不是必需的:
地图集=
MapSet.new()
|>MapSet.put(1)
|>地图集.放置(2)
|>地图集.放置(2)
|>地图集.放置(3)
|>地图集.放置(3)
|>地图集.放置(3)
Enum.join(映射集,“,”)
输出:
“1,2,3”
如果您已经有重复的数据结构,请使用
例如:
[1, 1, 2, 2, 2, 3, 4] |> Enum.uniq
结果:
[1, 2, 3, 4]
Enum.member?
是一个可以对许多不同数据结构(如列表和映射)进行操作的函数<代码>枚举成员?
本身不是数据结构。话虽如此,地图集
听起来很适合您的目的。。。