使用JsonArray vs ArrayList作为数据集到RecyclerView适配器
我已经使用ArrayList<>
和JsonArray
作为适配器中的数据集。我发现的一个主要区别是,适配器中本地数据的数据集更改没有反映在JsonArray的调用类中。使用JsonArray vs ArrayList作为数据集到RecyclerView适配器
我想知道使用哪一个更好,我的观察是否正确。
此外,如果我的数据集涉及从Web服务(这给了我JSON形式的数据)提取数据将我更改为ArrayList <>更好。
JsonArray由ArrayList实现。 http://grepcode.com/file/repo1.maven.org/maven2/org.json/json/20080701/org/json/JSONArray.java
所以它的应用程序性能非常类似的变种。使用你喜欢的东西=)
仍然从索引中删除项目不适用于前棒棒糖版本。 – Harshit
据我所知JsonArray
并不比ArrayList
慢很多。所以我相信你应该可以使用JsonArray
。我们需要看到一些代码来帮助解决使用jsons时的问题。
JsonArray内部使用ArrayList,所以延迟较少,因为内部调用在Java中很快。
但是,如果您将JsonArray转换为ArrayList并且JsonArray包含更复杂的数据,则根据App的开发人员易用性和性能,访问ArrayList的速度会很快。
好jsonArray是一个快速的解决方案,因此,如果你想JsonArray转换成数组列表,你绝对可以使用它作为您的数据集,并仍然是获得所有可用的方法为它然后读取这个答案
https://stackoverflow.com/a/17037364/5476209
在你的情况下,它可以与JsonArray一起使用,但是一个好方法,并且强烈推荐使用GSON。当你和Json一起工作时,我会说一个黄金方法,我会更喜欢它,看到这个答案。
Google Gson - deserialize list<class> object? (generic type)
JSONArray
内部使用ArrayList
。这只是包装ArrayList
。所以我会说没有区别。 JSONObject
使用HashMap,所以再没有真正的缺点。
是的,他们都可以使用。至于哪一个更正确,使用JsonArray感觉就像打破了MVC。所以如果明天你从使用Json改为XML,yaml等,你将不得不改变你的模型。理想情况下,您的模型应该知道显示视图所需的最低限度,并且除了视图之外什么都不需要。如果你想显示三个标签,那么你的模型应该只包含三个字符串。所以,我建议你把它做成一个List。
请您详细说明一下,“适配器中的本地数据的数据集更改没有反映回JsonArray的调用类”,您是什么意思? –
是的。我在MainActivity中有一个数据集。我使用函数将该数据传递给Adapter类,然后调用notifyDataSetChanged()。使用JsonArray时,我制作的数据集中的更改不同步,但在使用ArrayList 时同步。 – Harshit
@Harshit你的JsonArray包含更多结构化数据吗? – JJ86