Прежде всего то, что вы пытаетесь сделать здесь, называется «преждевременная оптимизация».Это написание кода с некоторой идеей эффективности, а не написание понятного, простого кода.Как правило, это приводит к тому, что код становится сложнее для чтения и обслуживания, и в большинстве случаев он действительно не повышает эффективность программы.
[Если вы хотите оптимизировать, сначала проанализируйте, используя хороший профилировщик, и только потом запускайтечтобы изменить код в местах, которые вы нашли горячими точками.]
Отвечая на новый пример кода с помощью JSONObject:
В результате вам потребуется JSONArray, содержащий 10 различных JSONObjects, которые нене существует заранее.Нет никакого способа избежать создания этих 10 JSONObjects, и это именно то, что делает ваш пример кода.Если вы просто создадите один JSONObject вне цикла и установите для его полей разные значения при каждой итерации цикла, вы получите в итоге JSONArray, содержащий в 10 раз идентичный JSONObject со значениями полей из последней итерации, как и все вызовы setXXX()
просто изменит один созданный вами объект, и последний набор победит.Если вы хотите, чтобы 10 JSONObjects различались по значениям полей, вам нужно 10 экземпляров, поскольку один экземпляр может содержать только один набор значений, независимо от того, как часто вы добавляете его в какой-либо список или массив.