2011-06-26 3 views
-1

Программа, которую я создаю, программа, в которой используется метод LOT различных массивов! Для меня довольно сложно отследить все. Итак, почему бы не объединить их в многомерный массив? Моя проблема заключается в том, как я могу объединить массив String[] с массивом Object[]?Различные типы переменных в ОДНОМ МАССИВЕ? (Java)

Может кто-нибудь помочь мне с этим?

+0

Можете ли вы указать? Подумайте о двумерном массиве как матрице. Какие ячейки вы хотите, как укусы и которые как объекты? –

+2

Кроме того, если вы комбинируете массивы, чтобы упростить их отслеживание, я не уверен, что это отличный дизайн. –

+1

Не могли бы вы объяснить чуть подробнее? Почему вы объединяете массивы в многомерный массив, если они не связаны? Чего вы хотите, чтобы ваш конечный результат был? – styfle

ответ

3

Если вы объявите массив определенного типа, все подтипы могут быть сохранены в массиве. Например.

Object myArray[]; 

теперь может хранить любой объект, строки, даты, JButtons и т.д. Тем не менее, это может быть опасно, когда вы извлекаете элементы из массива. Вы должны убедиться, что вы правильно их интерпретируете. Компилятор не сможет предупредить вас, если вы храните там неправильный тип объекта.

Лучшим подходом может быть создание собственного объекта коллекции, который хранит все различные элементы таким образом, что это безопасный тип.

0

Один из вариантов заключается в использовании ArrayList<Superclass[]>, где суперкласс - это класс, из которого все, что вы используете, наследует. Если такого класса нет, используйте Object.

-2

Почему бы не использовать один Object и поместить в него все ваши массивы.

+0

Не очень хорошая идея. Вам нужно было бы отбрасывать назад и вперед, что могло бы ввести ClassCastExceptions в код во время выполнения. – adamjmarkham

0

Вы можете использовать Object [] [], поскольку String - это объекты.

4

Это звучит так, будто у вас отсутствует абстракция, если все ваши массивы имеют одинаковую длину, вероятно, есть класс, который вы должны определять; структуру данных типа записи, которая либо имеет все общедоступные поля (если ваши данные должны быть неизменными, добавьте final) или JavaBean с геттерами и сеттерами. Множество массивов значений примитивов очень процедурно, Java - ориентированный на объект язык, поэтому используйте это в своем дизайне.

Чтобы добавить комментарий к комментарию @ styfle; если они не связаны, почему вы хотите это сделать? И если они связаны, почему вы не определяете классы?

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