ArrayList <jsonobject> vs JSONArray

时间:2016-10-05 14:37:25

标签: java json performance collections

我正在重构我的旧代码,它涉及JSONArrays中的大量数据解析和JSONObjects操作。我想知道将JSONObjects存储在ArrayLists中是否有效。我还想要在更新和插入操作中使用什么样的集合来获得最佳性能?

3 个答案:

答案 0 :(得分:0)

我认为最好的方法是使用jackson ArrayNode和其他有用的东西:

Maven依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.3</version>
</dependency>

开始使用的代码:

 ArrayNode jsonArray = new ObjectMapper().createArrayNode();
 ArrayNode jsonArray = new ObjectMapper().createArrayNode();
 jsonArray.addPOJO(myObject);
 jsonArray.add(232);
 jsonArray.add("Hi Stack");
 jsonArray.add(anotherJsonArray);

以下是doc:http://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/node/ArrayNode.html

的链接

答案 1 :(得分:0)

ArrayList更快。

JSONArray使用ArrayList。因此,如果您可以在ArrayList中做所需的事情,那将至少避免额外的引用。 。因此,如果您可以在ArrayList中执行所需的操作,那么这是一个更好的选择。如果您需要JSONArray的功能,但可以怀疑您的代码会更快。

答案 2 :(得分:-1)

JSONArray在内部使用ArrayList,因此它就像ArrayList上的包装器一样。我会说ArrayList和JSONArray之间没有显着差异。 JSONObject在内部使用HashMap。

对于集合,ArrayDeque是最快的,通过它最有效的方式是使用ArrayDeque和JSONObject而不是JSONArrays。