Определение «более эффективный» обычно означает меньший объем памяти или меньшую нагрузку на процессор.Это диаметрально противоположные цели.Задача заключается в их балансировке.
Вы можете использовать тип Object[]
, как указано выше, но для этого потребуется определить тип и затем привести каждый элемент к типу String
или Int
перед использованием.
Упаковка, преобразование в тип Object
и распаковка, преобразование в исходный тип - относительно дорогие операции в Java.
Возможные решения, если они должны храниться с использованиемтот же индекс массива:
Если вам не требуется выполнять дополнительную математическую обработку для элементов int
, используйте метод .toString()
, чтобы преобразовать его в String
и сохранитьэто в массиве String
с.
Если число целочисленных элементов будет намного меньше, чем String
с, используйте метод .toString()
, чтобы преобразовать его в String
и сохранить его в массивеString
s.Затем выполните синтаксический анализ int
s, используя Integer.parseInt()
. (parseInt()
считается медленной операцией)
Если память не имеет значения, сделайте два отдельных массива одинаковымиразмер, один типа String
и другой типа int
.Выберите один, чтобы быть основным (наиболее населенным).Используйте значение флага ("" для String
и Integer.MIN_VALUE
для int
), чтобы указать, что результатом является другой тип, и следует использовать значение, хранящееся в другом массиве.Это сохраняет общий индекс за счет увеличения используемой памяти.
Я бы предложил переписать код, чтобы использовать два отдельных массива, если это возможно.