один. О характеристиках массивов
1. На Java есть границы, используя ли вы массивы или коллекции. Если операция выходит за пределы, будет получена Runtimeexception.
2. Массивы могут сохранить только определенные типы. Массивы могут сохранять собственные типы данных, но коллекции не могут. Коллекции не обрабатывают объекты в определенных типах. Они обрабатывают все объекты в соответствии с типом объекта. Что хранится в коллекции, так это ссылка объекта, а не сам объект.
3. Класс сбора может сохранить только ссылки на объекты. Массивы могут быть созданы для непосредственного сохранения собственных типов данных или для сохранения ссылок на объекты. В коллекции вы можете использовать класс обертки, такой как целое число, двойное и т. Д., Чтобы сохранить собственные значения типа данных.
Пример кода:
int a = 10; Integer Integer = New Integer (A); int b = integer.intvalue (); System.out.println (a = b);
4. Массив объектов и нативный массив типов данных почти одинаковы; Единственное отличие состоит в том, что массив объектов сохраняет ссылки, а нативный массив типа данных содержит значение нативного типа данных.
2. Правильное использование массивов
Например, если вам нужно сохранить большое количество данных, если вам нужно прочитать 100 номеров, вам нужно определить 100 переменных. Очевидно, что не имеет большого смысла повторять код 100 раз. Как решить эту проблему? Java Language обеспечивает структуру данных массива (массив), которая представляет собой контейнер, который может хранить элементы того же типа данных и может хранить 100 чисел в массиве. Массивы будут очень полезны в настоящее время ~
1. Преимущества массивов
Есть ли какая -то разница между хранением данных и не хранением данных? Самым большим преимуществом массивов является то, что они могут автоматически читать все хранимых элементов. Обратите внимание, что число начинается с 0. Легко использовать эти данные.
Например, номер студента может быть использован для поиска соответствующего студента.
2. Формат массива
Формат 1:
Тип элемента [] Имя массива = тип нового элемента [Количество элементов или длины массива];
Пример:
int [] arr = new int [5]; arr [0] = 1; arr [1] = 2;
Формат 2:
Тип элемента [] asal alem = new element type [] {element, element,…};
int [] arr = new int [] {3,5,1,7}; int [] arr = {3,5,1,7};ПРИМЕЧАНИЕ. При распределении пространства на массив необходимо указать количество элементов, которые массив может хранить, чтобы определить размер массива. Размер массива не может быть изменен после создания массива. Вы можете использовать атрибут длины, чтобы получить размер массива.
3. объявить переменные массивы
Чтобы использовать массив, массив должен быть объявлен в программе, и должен быть указан тип элемента массива.
= Оставлена половина:
Сначала запишите левую сторону, чтобы уточнить, что тип элемента INT, и контейнер использует массив. Так как же определить массив? Затем используйте специальный символ [] скобки, чтобы представлять его. Чтобы использовать массив, вам нужно дать массиву имя, поэтому мы называем массив X здесь. Затем следуйте равному знаку.
Код отражает:
int [] x
Примечание: int x [] также является форматом для создания массивов. Рекомендуется объявить массивы int [] x.
4. Создайте массив
= Правая половина:
Чтобы использовать новое ключевое слово, называемое новым. Новый используется для создания контейнерного объекта в памяти. Хранение данных требует места. Пространство для хранения большого количества данных открывается с новым оператором. новый int [3]; Это 3 количество элементов. Часть справа определяет настоящий массив в памяти, который может хранить 3 элемента.
Новый int [3] делает две вещи. Сначала используйте новый int [3], чтобы создать массив, а затем назначить ссылку на переменную массива x.
int [] x=new int[3];
Какой тип x?
Любая переменная должна иметь свой собственный тип данных. Обратите внимание, что этот X не имеет типа Int. int представляет тип элемента в контейнере. Тогда х тип массива.
Массив - это отдельный тип данных. Типы данных разделены на две основные школы, которые разделены на основные типы данных и ссылочные типы данных. Вторая по величине школа - это тип справочных данных. Таким образом, вы теперь вступили в контакт с одним из трех типов ссылочных данных. То есть кронштейны типа массива [] представляют собой массив.
int[] arr = new int[5]; Что происходит в памяти?
Когда какая -либо программа работает, необходимо открыть пространство в памяти. INT [] arr = new Int [5]; как выглядит эта программа в памяти? Это включает в себя пространство, открытое виртуальной машиной Java при выполнении программы. Так сколько места открывается Java? Продолжайте изучать структуру памяти Java.
5. Инициализация массива
Метод 1: не используйте оператор новый
int [] arr = {1, 2, 3, 4, 5};Метод 2: используйте оператор новый
int [] arr2 = new int [] {1, 2, 3, 4, 5}; int [] arr3 = new int [3]; arr3 [0] = 1; arr3 [1] = 5; arr3 [2] = 6;Если новый оператор не используется в инициализации массива. Примечание. Следующий метод написания неверен.
int [] arr; arr = {1,2,3,4,5};В настоящее время, инициализируя массив, вы должны разместить объявление, создание и инициализацию в одном утверждении. Разделение его вызовет ошибки синтаксиса.
Итак, вы можете написать только следующим образом:
int [] arr = {1,2,3,4,5};6. массив
public static void main (string [] args) {int [] x = {1, 2, 3}; for (int y = 0; y <3; y ++) {System.out.println (x [y]); // System.out.println ("x ["+y+"] ="+x [y]); Эффект печати x [0] = 1;} // Тогда это первая общая операция массивов. обход}В массиве есть атрибут, который может получить количество элементов в массиве, то есть длины массива. Массив название
public static void main (string [] args) {int [] x = {1, 2, 3}; for (int y = 0; y <x.length; y ++) {System.out.println (x [y]); // system.out.println ("x ["+y+"] ="+x [y]); Эффект печати x [0] = 1;} // Тогда это первая общая операция массивов. обход}7. Общие исключения массивов
Маркер угла массива пересекает границы исключения: Примечание: угловой маркер массива начинается с 0.
public static void main (String [] args) {int [] x = {1, 2, 3}; System.out.println (x [3]); // java.lang.arrayindexoutofboundsexception}Исключение с двумя нулевыми указателями:
public static void main (string [] args) {int [] x = {1, 2, 3}; x = null; system.out.println (x [1]); // java.lang.nullpointerexception}Множество:
Когда использовать массивы: когда есть много элементов, чтобы облегчить работу этих массивов, сначала будет выполнено временное хранилище, а используемый контейнер представляет собой массив.
Функции:
Длина массива фиксирована.
8. Общие операции массивов
1: случай:
Массив выводит максимальное значение
/*Определите функцию, чтобы получить максимальное значение:
1. Определите результат: тип возврата значения int
2. Неизвестное содержание: максимальное значение, из которого массив не определяется, тогда массив не определяется.
Идеи:
1. Определите переменную и запишите более крупные элементы массива.
2. Переверните по всему массиву и сравните каждый элемент массива с переменной.
3. Когда переменная сталкивается с элементом, больше, чем она, пусть переменная записывает значение элемента. Когда петля заканчивается, максимальное значение генерируется.
*/public static int getMax (int [] arr) {// определить переменную, чтобы записать большее значение и инициализировать его в любом элементе в массиве. int max = arr [0]; for (int x = 1; x <arr.length; x ++) {if (arr [x]> max) max = arr [x];} return max;}Два: прямая сортировка
Случай 2: сортировки массивы с использованием прямой сортировки:
/*
Выберите сортировку.
Сравните элементы с одним углом с другими элементами.
На первом конце внутреннего петля наибольшее значение появляется в положении угла головы.
*/public static void selectsort (int [] arr) {for (int x = 0; x <arr.length-1; x ++) {for (int y = x+1; y <arr.length; y ++) // Почему значение инициализации y x+1? Потому что каждый раз, когда вы сравниваете, // сравнивается со следующим элементом, отмеченным на X -углу. {if (arr [x]> arr [y]) {int temp = arr [x]; arr [x] = arr [y]; arr [y] = temp;}}}}ТРИ: Сортировка пузырьков
/*Пузырьковая сортировка. Метод сравнения: сравните два соседних элемента. Если условия будут выполнены, замена положения будет выполнена. Принцип: внутренняя петля заканчивается один раз, и наибольшее значение появляется в положении хвостового угла. */public static void bubblesort (int [] arr) {for (int x = 0; x <arr.length-1; x ++) {for (int y = 0; y <arr.length-x-1; y ++) //-x: пусть мета-дедерность каждого участия в сравнении. //-1: Избегайте угловых следов пересечения границ. {if (arr [y]> arr [y+1]) {int temp = arr [y]; arr [y] = arr [y+1]; arr [y+1] = temp;}}}}Четыре: полузадачный поиск (метод с двумя частями)
/*Чтобы повысить эффективность поиска, вы можете использовать метод полуфинансирования. Примечание. Этот поиск действителен только для упорядоченных массивов. Этот метод также стал методом бинарного поиска. */public static int Halfseach (int [] arr, int key) {int min, mid, max; min = 0; max = arr.length -1; mid = (max + min)/2; while (arr [mid]! = key) {if (key> arr [mid]) min = mid + 1; else (ar arr [mid]) max = mid -1; Если (min> max) -1; (макс+min)/2;} return mid;}Пять: массив
/*Инверсия на самом деле является позиционной заменой элементов отметок головы и хвостового углового, а затем отметки угловой головы автоматически увеличиваются. Хвостовая угла выбита самообеспечена. Когда отметка угла головы состоит <отметка на угле хвоста, может быть выполнено действие замены. */public static void reversearray (int [] arr) {for (int start = 0, end = arr.length-1; start <end; start ++, end-) {swap (arr, start, end);}} // Выполнить позиционное смещение элементов массива. Публичный статический пустой обмен (int [] arr, int a, int b) {int temp = arr [a]; arr [a] = arr [b]; arr [b] = temp;}11. Двумерный массив
Использование массивов
Подробное объяснение массивов Java
Traversal: ToString () возвращает элементы массива в виде строки
Sort: sort () Закажите массив в порядке возрастания
Поиск: BinarySearch () Поиск указанного элемента в указанном массиве возвращает индекс элемента. Если возврат не найден (-insert point-1) Примечание. При использовании функции поиска массив должен быть отсортирован сначала.
Двухмерный массив:
Курение:
Нет денег, чтобы купить 1 переменную
Немного денег-это упаковка одномерных массивов 20 переменных
Очень богатый 10 упаковок (двухмерный массив) 2D массив
Двумерная массива: по сути, хранилище представляет собой одномерный массив.
Определение массива:
Тип массива [] [] Имя массива = новый тип массива [номер одномерного массива] [Количество элементов в каждом одномерном массиве];
Подробное объяснение массивов Java
Вопрос: Почему a.length = 3, a [0] .length = 4?
Подробное объяснение массивов Java
Инициализация массива:
Статическая инициализация:
int [][] a = new int[][]{ {12,34,45,89},{34,56,78,10},{1,3,6,4} };
Динамическая инициализация:
Подробное объяснение массивов Java
Общие операции для двухмерных массивов:
1. Переезд двумерной массивы
2. Суммируйте двухмерные массивы
Класс Demo3 {// Определить функциональную функцию, которая пересекает двумерный массив, общедоступный статический void printarr2 (int [] [] a) {// 1. Разменить двумерный массив для (int i = 0; i <a.length; i ++) {// 2. Разменить Array One-Demensional для получения данных для (int j = 0; ) {System.out.print (a [i] [j]+","); }}} // Определите функцию для расчета суммы накопления элементов в двухмерном массиве общедоступного статического длинного бабума (int [] [] a) {// 0. Определите переменную переменную длину = 0l; // 1. Разберите двумерный массив для (int i = 0; i <a.length; i ++) {// 2. Разменить одномерный массив для получения данных для (int j = 0; j <a [i] .length; j ++) {sum+= a [i] [j]; }} return sum;} // Статистика Количество элементов в двухмерном массиве Public Static int getDataCount (int [] [] a) {// 0. Запишите количество элементов int count = 0; // 1. Разберите двумерный массив для (int i = 0; i <a.length; i ++) {// 2. Разменить одномерный массив для получения данных для (int j = 0; j <a [i] .length; j ++) {count ++; }} return count;} public static void main (string [] args) {int [] [] a = new int [] [] {{23,4,5}, {2}, {4,5,78,56,90}}}; printArr2 (a); System.out.println (); System.out.println ("Накопленная сумма:"+getsum (a)); System.out.println ("Статистическое количество элементов:"+getDataCount (a)); System.out.println ("Привет, мир!");}};Вышеуказанные - все темы на массивы Java. Как видите, массивы Java являются очень мощной структурой данных.