HTTP响应解析:Seq与Set约定

时间:2017-11-20 14:56:11

标签: scala akka-http json4s

我使用Akka-HTTP和Json4s调用API,但问题可能适用于任何HTTP客户端/ JSON解析器。 API会返回一个简短的项集合,我应该在解析响应时使用Seq还是Set?由于集合的小巧,性能并不是真正的问题。从逻辑/可读性的角度看,Set对我来说更有意义,因为集合是无序的,并且应该没有重复。但是,我经常看到人们使用集合。

举个例子,我要反序列化的对象是:

case class(name: String, tags: Seq[String], filters: Seq[Filter])  

1 个答案:

答案 0 :(得分:0)

这个问题不仅适用于任何HTTP客户端/ JSON解析器,而且适用于您选择使用某些数据结构的任何情况。这里的关键是数据的访问模式以及将来要对您的数据执行哪些操作。在大多数情况下,您可能会迭代执行某些转换的所有集合,或者如果我们正在讨论与UI相关的应用程序 - 以列表视图的形式呈现您的数据。在这些情况下,您不需要快速访问特定元素(Set的主要优点)。而且由于Seq通常消耗更少的内存并允许更快地迭代所有元素 - 人们更喜欢使用Seq。