Статьи

Изучите Java для разработки под Android: работа с массивами

Этот быстрый урок покажет вам, как работать с массивами в Java. Этот урок является частью непрерывной серии учебных пособий для разработчиков, изучающих Java с целью разработки приложений для Android.

Массив — это общая структура данных, используемая для хранения упорядоченного списка элементов. Элементы массива набраны. Например, вы можете создать массив символов для представления гласных букв в алфавите:

1
char aVowels[] = {‘a’,’e’,’i’,’o’,’u’};

Подобно C или C ++, массивы Java индексируются численно в системе, основанной на 0. Это означает, что первый элемент в массиве (то есть «a») имеет индекс 0, второй («e») — индекс 1 и т. Д.

Java делает работу с массивами проще, чем многие другие языки программирования. Сам массив является объектом (типа массив) со всеми его преимуществами. Например, вы всегда можете проверить размер массива, используя его свойство length:

1
int length = aVowels.length;

Вы можете хранить любой объект или тип примитива в массиве. Например, вы можете хранить целые числа в массиве:

1
int aNums[] = { 2, 4, 6 };

Или вы можете хранить в массиве не примитивные типы, такие как Strings (или любой другой класс):

1
String aStooges[] = {«Larry», «Moe», «Curly»};

Иногда вам может понадобиться хранить объекты разных типов в массиве. Вы всегда можете воспользоваться наследованием и использовать родительский класс для типа массива. Например, класс Object является матерью всех классов … поэтому вы можете хранить разные типы в одном массиве, например так:

1
2
3
4
float one = 1.0f;
Integer two = new Integer(2);
String three = «three»;
Object aObjects[] = {one, two, three};

Элементы массива объектов Java являются ссылками (или дескрипторами) на объекты, а не фактическими экземплярами объектов. Значение элемента равно нулю до тех пор, пока ему не будет назначен действительный экземпляр объекта (т. Е. Массив инициализируется автоматически, но вы несете ответственность за назначение его значений).

Есть несколько способов объявить массив в Java. Как вы уже видели, вы можете объявить массив и сразу же предоставить его элементы, используя синтаксис скобок в стиле C. Например, следующий код Java объявляет массив целых чисел длины 3 и инициализирует массив в одну строку:

1
int aNums[] = { 2, 4, 6 };

Вы также можете объявить массив определенного размера, а затем назначить значение каждому элементу индивидуально, например так:

1
2
3
4
5
6
double aPowersOfTwo[] = new double[5];
aPowersOfTwo[0]=Math.pow(2,0);
aPowersOfTwo[1]=Math.pow(2,1);
aPowersOfTwo[2]=Math.pow(2,2);
aPowersOfTwo[3]=Math.pow(2,3);
aPowersOfTwo[4]=Math.pow(2,4);

Это эквивалентно созданию массива следующим образом:

1
double aPowersOfTwoExplicit[] = {1.0d, 2.0d, 4.0d, 8.0d, 16.0d};

Есть несколько других способов создания массивов. Например, вы можете создать переменную массива и назначить ее отдельно, используя ключевое слово new. Вы также можете поставить скобки массива перед именем переменной, если хотите (это проблема стиля). Например, следующий код Java определяет массив элементов String, а затем назначает их индивидуально:

1
2
3
4
5
String [] aStopLightColors;
aStopLightColors = new String[3];
aStopLightColors[0] = new String(«red»);
aStopLightColors[1] = new String(«yellow»);
aStopLightColors[2] = new String(«green»);

Как вы уже видели, вы можете назначать значения массива с помощью синтаксиса скобок:

Вы также можете получить значения массива по индексу. Например, вы можете получить доступ ко второму элементу в массиве с именем aStopLightColors (определенному в предыдущем разделе) следующим образом:

1
String strCurrentLightColor = aStopLightColors[1];

Наконец, массивы часто используются в качестве упорядоченного списка объектов. Следовательно, вы можете обнаружить, что хотите перебирать массив по порядку, методически обращаясь к каждому элементу.

Есть несколько способов сделать это в Java. Поскольку вы всегда можете программно проверить размер массива, вы можете использовать любой из типичных методов цикла for или while, которые вы можете найти знакомыми. Например, следующий код Java объявляет простой целочисленный массив из трех чисел и использует простой цикл for для итерации по элементам:

1
2
3
4
5
int aNums[] = { 2, 4, 6 };
 
for (int i = 0; i < aNums.length; i++) {
    String strToPrint = «aNums[» + i + «]=» + aNums[i];
}

Java также предоставляет очень удобный цикл for-each для дружественного перебора массивов. Цикл for-each помогает избежать глупых ошибок программирования, которые часто встречаются в циклах (ошибки off-by-one и т. Д.). Чтобы использовать синтаксис цикла for-each, вам нужно определить переменную цикла, затем поставить двоеточие и указать имя вашего массива. Например, следующий код обеспечивает структуру цикла, аналогичную предыдущему циклу for, показанному выше:

1
2
3
for (int num : aNums) {
    String strToPrint = num;
}

Как вы можете видеть, цикл for-each является гладким. Однако вы больше не знаете индекс во время итерации. Таким образом, он не может быть использован во всех ситуациях.

В этом быстром уроке вы узнали о массивах в Java. Массивы — это фундаментальная структура данных, используемая для программирования на Java, в которой упорядоченным образом хранится упорядоченное количество объектов заданного типа. В Java массивы сами являются объектами и хранят ссылки на объекты, что делает присваивание и использование проще (но немного отличается) от того, как массивы используются в других языках программирования.

Разработчики мобильных приложений Лорен Дарси и Шейн Кондер являются соавторами нескольких книг по разработке Android: углубленная книга по программированию под названием « Разработка беспроводных приложений для Android» и « Разработка Android-приложений Sams TeachYourself за 24 часа» . Когда они не пишут, они тратят свое время на разработку мобильного программного обеспечения в своей компании и оказание консультационных услуг. С ними можно связаться по электронной почте [email protected] , через их блог на androidbook.blogspot.com и в Twitter @androidwireless .