2016-10-05 2 views
1

Я перерабатываю свой старый код, который включает в себя большое количество анализа данных и манипулирования JSONObjects внутри JSONArrays. Я хочу знать, будет ли эффективно хранить JSONObjects в ArrayLists. Мне также нужны предложения о том, какую коллекцию я должен использовать для большей производительности в операциях обновления и вставки ?.ArrayList <JSONObject> vs JSONArray

+0

JSONArray внутренне использует ArrayList. Это просто оболочка над ArrayList. Src: http://stackoverflow.com/a/14384131/4195825 – px06

ответ

-1

JSONArray внутренне использует ArrayList, поэтому он похож на обертку поверх ArrayList. Я бы сказал, что нет существенной разницы между ArrayList и JSONArray. JSONObject использует HashMap внутренне.

Что касается коллекций, ArrayDeque является самым быстрым, самым эффективным способом будет использование ArrayDeque с JSONObject вместо JSONArrays.

+0

bro, но почему вы противоречите себе, сказав: «Нет существенной разницы между ArrayList и JSONArray», а также «самым эффективным способом было бы использовать ArrayDeque с JSONObject вместо JSONArrays «Я сейчас смущен – Mohanavel

+0

Я сказал использовать ArrayDeque с JSONObjects, потому что это самая быстрая коллекция. Нет никакой разницы, если вы используете ArrayList против JSONArray. –

+0

Есть ли источник, который описывает ArrayDeque быстрее, чем arraylist или любая логика позади, пожалуйста, объясните или дайте мне источник. Я задал этот вопрос, поскольку большинство людей сказали, что это лучше, и это лучше, но никто не дал правильных объяснений. – Mohanavel

0

Я думаю, что лучший способ заключается в использовании Джексоном ArrayNode и другие Полезные вещи оттуда:

Maven DEPENDENCY

<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); 

Вот ссылка к документу: http://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/node/ArrayNode.html

+0

Пожалуйста, добавьте источник, который говорит, что ArrayNode быстрее благодарит! – Mohanavel

+0

Вы сможете почувствовать разницу в производительности, если используете значения, которые перегружены для метода ArrayNode # add (...). В этом случае не будет класса, который обычно занимает много времени. JSONObject принимает все типы как Объект, и когда вы его используете, будет выполняться много классного литья. Но если вам нужно хранить только некоторые POJO, я считаю, что не будет такой заметной разницы в производительности. Единственное, что ArrayNode предоставит вам гораздо больше функций, чем другие способы. – eGoLai

Смежные вопросы