Нет, так, как вы предоставили. У меня на уме два решения, и оба не идеальные.
1
Вы можете создать несколько массивов, например, строковый массив для имен, целочисленный массив для целого числа и т. Д. Каждый объект будет храниться в этих массивах с одинаковым индексом. Это не просто в обслуживании, но может быть более эффективным в использовании памяти в случае доступа только к одному свойству объекта.
Я описал это в: https://stackoverflow.com/a/6774856/538169
Или
2
Вы можете создать один типизированный массив и иметь свойства объекта в массиве. Вы можете получить доступ к свойству путем перевода индекса следующим образом:
final int PROPERTIES_COUNT_IN_OBJECT = 2;
int objectIndex = 0; // the first element in your's example
int propertyIndex = 1; // the second property: <type>1</type>
int indexInArray = objectIndex * PROPERTIES_COUNT_IN_OBJECT + propertyIndex;
Тогда получите это свойство из TypedArray.
Второе решение гораздо хуже поддерживать. Добавление другой собственности было бы кошмаром.