使用JsonArray vs ArrayList作为RecyclerView Adapter的数据集

时间:2016-07-05 20:34:47

标签: android android-recyclerview recycler-adapter

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

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

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

6 个答案:

答案 0 :(得分:4)

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

因此它的应用程序性能非常相似。使用你喜欢的东西=)

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

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

在你的情况下可以和JsonArray一起使用,但是一个好方法并且强烈推荐的方法是使用GSON我会说一个黄金方法,每当你和Json一起工作时我会更喜欢它,看到这个答案。

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

是的,它们都可以使用。至于哪个更正确,使用JsonArray感觉就像打破了MVC。因此,如果明天你从使用Json变为XML,yaml等,你将不得不改变你的模型。理想情况下,您的模型应该知道显示视图所需的最小值,并且只能与视图相关联。如果要显示三个标签,则模型应仅包含三个字符串。所以,我建议你把它作为一个列表。