Самая популярная в мире мобильная ОС - от телефонов и часов до автомобилей и телевизоров.
Добро пожаловать в серию статей Изучение Android. Я буду регулярно рассказывать вам, почему и как начать работу с Android и создать свое портфолио. Я поделюсь с вами объяснениями и фрагментами кода о том, как реализовать самые важные и базовые вещи в Android.
В предыдущей статье мы узнали, как переходить от одного действия к другому и как разные типы намерений могут выполнять разные типы задач. Мы также узнали, как передавать данные между действиями с помощью намерений. В этой статье мы узнаем о различных (настраиваемых) держателях данных, которые используются в объектно-ориентированном программировании.
Предыдущая статья: Изучение Android - многоэкранные приложения
Массивы - это контейнеры фиксированной длины. Поэтому после создания они остаются той же определенной длины. Массивы содержат элементы схожих типов данных. Например, весь массив строк, целых чисел или логических значений и т. Д. Каждый из элементов хранится в слотах, пронумерованных от индекса 0 до определенного индекса ». длина-1 '. И поэтому, когда нам нужны элементы, мы просто используем индекс для отображения этих значений. Для хранения отдельных значений мы можем использовать переменные. Чтобы узнать больше о различных типах данных, посетите страницу документации здесь!
У массивов есть имя, и доступ к каждому элементу осуществляется с использованием имени массива и местоположения индекса. Позиция индекса нумеруется от 0 → 1 → 2 → и так далее до конца. Итак, для массива с индексом 8 у нас будут «слоты», пронумерованные от 0 до 7.
Например, если нам нужно сохранить целочисленный рост 9 учеников одного класса в массиве, мы можем определить массив, используя -
int[] heightOfStudents = new int[7];
Каждый элемент массива будет содержать одну высоту, которая будет целым числом. Чтобы объяснить утверждение about, int - это тип данных, а [] означает, что нам нужен массив. Затем мы присваиваем массиву имя и с помощью ключевого слова «new» создаем массив определенного размера, в нашем случае - 7.
Чтобы инициализировать элемент в массиве, мы используем индекс и имя -
heightOfStudents[0] = 148; heightOfStudents[1] = 151; heightOfStudents[2] = 147; heightOfStudents[3] = 154; heightOfStudents[4] = 148; heightOfStudents[5] = 150; heightOfStudents[6] = 150;
Обратите внимание, что мы не снова используем этот тип данных, поскольку мы уже определили его ранее. Мы также используем обычный оператор присваивания ‘=’ вместе с [], содержащим номер индекса.
Чтобы получить доступ к элементам массива или прочитать их, мы используем аналогичный синтаксис. Например, чтобы напечатать элемент в позиции 4 массива, мы используем -
System.out.println(heightOfStudents[4]);
Теперь, когда мы узнали о массивах, на самом деле есть некоторые ограничения. Кроме того, Java поддерживает лучшую структуру данных для хранения аналогичной информации - ArrayList.
Основное преимущество состоит в том, что нам не нужно определять конкретный размер, как в массиве. В массиве, как только мы определяем размер, мы застреваем на нем. Но ArrayList довольно динамичен, позволяет добавлять и удалять элементы и различается по размеру в зависимости от количества данных, содержащихся в нем.
Но загвоздка в том, что ArrayList может содержать только типы данных object, в отличие от примитивных типов данных, таких как целые числа, числа с плавающей запятой, логические и т. Д. Но если мы хотим хранить примитивные типы, такие как double, Java поддерживает «средства захвата объектов», которые оборачивают примитивные типы данных для преобразования их в типы данных объекта. Например, мы можем использовать ArrayList ‹Double›, но не можем использовать ArrayList ‹double›.
Таким образом, ArrayList более гибкий, поскольку в нем нет ненужной памяти, которая может быть обнаружена в массивах, когда мы определяем массивы, превышающие требуемую длину.
Вот сравнительная таблица между array и ArrayList -
Чтобы узнать, как инициализировать, добавлять или удалять элементы, а также получать доступ к элементам из ArrayList, посетите это руководство!
Теперь, когда мы узнали о структурах данных, которые могут самостоятельно обрабатывать примитивные операции, которые нам нужно выполнить, нам нужно знать способ написания кода, который помогает нам выполнять одну и ту же повторяющуюся работу снова и снова, но без повторения и переписывания кода. .
Мы делаем это с помощью циклов.
Циклы позволяют нам выполнять одни и те же инструкции снова и снова, пока не будут выполнены определенные условия и мы не выйдем из цикла. Таким образом, мы можем повторить один и тот же набор инструкций для каждого элемента Array или ArrayList.
Цикл while - выполняет набор инструкций, пока условие имеет значение "истина", и выходит из цикла, как только условие становится «ложным». Вот как это записать -
while (true) { //our code goes here }
По сравнению с циклом while, цикл do-while будет выполняться хотя бы один раз, поскольку он проверяет условие после выполнения инструкций. Мы можем закодировать цикл do-while следующим образом:
do { //our code goes here } while (true);
Для получения дополнительной информации о циклах while и do-while вы можете прочитать официальную документацию Java здесь!
Цикл for в основном используется для итерации диапазона значений, который повторяется до тех пор, пока не будет выполнено определенное условие. Оператор for может быть выражен следующим образом:
for (инициализация; завершение; приращение)
Теперь, например, если мы хотим напечатать высоту всех студентов, которых мы добавили в массив, мы можем использовать цикл for, например:
for (int counter = 0; counter < heightOfStudents.length; counter++) { System.out.println(heightOfStudents[counter]); }
Для получения дополнительной информации о цикле for вы можете прочитать официальную документацию по Java здесь!