18. Объявление и инициализация массивов в Java: одномерных и массива массивов.
В java одномерный массив всегда использует только один индекс ([]).
Перед использованием массива мы должно его объявить. Мы должны указать тип данных и имя массива. Для использования массива, мы должны поместить значения в каждый индекс массива.
19. Особенности хранения в массивах значений элементарных и ссылочных типов, клонирование массивов элементарных и ссылочных типов.
В отличие от обычных переменных, которые хранят ровно одно значение, массивы (arrays) используются для хранения целого набора значений. Количество значений в массиве называется его длиной, сами значения - элементами массива. Значений может не быть вовсе, в этом случае массив считается пустым, а его длина равной нулю.
Самый простой вариант, это использовать стандартную или какую-либо, ещё сериализацию и складывать данные в файл рядом с архивом. Хранить данные в бд, для этого потребуется отдельно поднять базу данных, отправлять данные куда-то ещё. Использовать облако, например amazon, google engine, azure.
20. Приведение типов в массивах
В CLR можно выполнить неявное приведение типа элементов исходного массива, если элементы относятся к ссылочному типу. Условия успешного приведения: оба типа массивов должны быть одной размерности, а также должно иметь место неявное или явное преобразование из типа элементов исходного массива в целевой тип. CLR не допускает приведение массивов с элементами значимых типов к другому типу. (Однако нужного результата позволяет достичь метод Аггау.Сору, создающий новый массив.)
Метод Array.Copy не только копирует элементы одного массива в другой. Действуя, как функция memmove языка С, он, в отличие от memmove правильно обрабатывает перекрывающиеся области памяти. Он также способен, если требуется, преобразовывать элементы массива при их копировании. Метод Сору может выполнять:
упаковку элементов значимого типа в элементы ссылочного типа, например при копировании Int32[] в ObjectfJ;
распаковку элементов ссылочного типа в элементы значимого типа, например при копировании Objectf] в Int32[];
расширение (widening) элементарных значимых CLR-типов, например при копировании Ш32[] в DoublefJ;
приведение элементов с потерями при копировании между массивами разного типа, для которых нельзя определить совместимость по типу массива, например при приведении ObjectfJ к IFormattable[]. Если все объекты Object[] реализует IFormattable[], приведение пройдет успешно.
Do'stlaringiz bilan baham: |