【问题标题】:Using JsonArray vs ArrayList as a data set to RecyclerView Adapter使用 JsonArray vs ArrayList 作为 RecyclerView Adapter 的数据集
【发布时间】:2016-07-05 20:34:46
【问题描述】:

我使用了ArrayList<>JsonArray 作为适配器中的数据集。我发现的主要区别之一是 Adapter 中本地数据的数据集更改没有反映在 JsonArray 的调用类中。

我想知道使用哪个更好,我的观察是否正确。

此外,如果我的数据集涉及从 web 服务中提取数据(这给了我 Json 表单数据),我将其更改为 ArrayList 会更好。

【问题讨论】:

  • 能否详细说明,“Adapter 中本地数据的数据集更改未反映在 JsonArray 的调用类中”是什么意思?
  • 是的。我在 MainActivity 中有一个数据集。我使用函数将该数据传递给适配器类,然后调用 notifyDataSetChanged()。我在使用 JsonArray 时对数据集所做的更改不同步,但在使用 ArrayList. 时它们是同步的
  • @Harshit 你的 JsonArray 是否包含更多结构化数据?
  • 一般是jsonObjects的jsonArray.@jj86

标签: android android-recyclerview


【解决方案1】:

JsonArray 在底层由 ArrayList 实现。 http://grepcode.com/file/repo1.maven.org/maven2/org.json/json/20080701/org/json/JSONArray.java

因此,它的应用性能变体非常相似。用你喜欢的=)

【讨论】:

  • 仍然从索引中删除项目不适用于棒棒糖前版本。
【解决方案2】:

据我所知JsonArray 并不比ArrayList 慢多少。所以我相信你应该可以使用JsonArray。在使用 jsons 时,我们需要查看一些代码来帮助解决问题。

【讨论】:

    【解决方案3】:

    JsonArray 内部使用 ArrayList,因此延迟较少,因为 Java 内部调用速度很快。

    但是如果将 JsonArray 转换为 ArrayList 并且 JsonArray 包含更复杂的数据,那么根据开发人员的易用性和 App 的性能,ArrayList 的访问速度会很快。

    【讨论】:

      【解决方案4】:

      嗯 jsonArray 是一个快速的解决方案,所以你绝对可以将它用作你的数据集,如果你想将 JsonArray 转换为数组列表以获得所有可用的方法,那么请阅读这个答案

      https://stackoverflow.com/a/17037364/5476209

      在您的情况下,使用 JsonArray 很好,但一个好方法和强烈推荐的方法是使用 GSON,每当您使用 Json 时,我会说一种黄金方法,我非常喜欢它,请参阅此答案。

      Google Gson - deserialize list<class> object? (generic type)

      【讨论】:

        【解决方案5】:

        JSONArray 内部使用ArrayList。它只是ArrayList 的包装。所以我会说没有区别。 JSONObject 使用 HashMap,所以没有真正的缺点。

        【讨论】:

          【解决方案6】:

          是的,它们都可以使用。至于哪个更正确,使用 JsonArray 感觉就像破坏了 MVC。因此,如果明天您从使用 Json 更改为 XML、yaml 等,您将不得不更改您的模型。理想情况下,您的模型应该知道显示视图所需的最少内容,并且只与视图耦合。如果你想显示三个标签,那么你的模型应该只包含三个字符串。所以,我建议你把它做成一个列表。

          【讨论】:

            猜你喜欢
            • 2016-06-01
            • 1970-01-01
            • 2016-02-28
            • 1970-01-01
            • 2019-01-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-06-28
            相关资源
            最近更新 更多