массивы и матрицы в java

Массивы в Java. Одномерные и многомерные.

Начнем, пожалуй, последнюю не очень приятную и интересную, но очень важную и полезную тему в теории языка Java — массивы. Далее будет более интересный и увлекательный материал, который можно будет использовать для более практичных задач. Но, чтобы начать интересную часть явы нужно выучить неинтересную)) которая и является основой языка и без которой невозможно дальше учить программирование.

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

Теперь перейдем к массивам.

Массив — это структура данных, которая предназначена для хранения однотипных данных.

Допустим, Вам нужно создать 5 целочисленных переменных и задать им некоторое значение. Как Вы это будете делать? Не зная массивов, Вы скорее всего начнете писать вот так: int a = 2, b = 3, c = 5, d = 21, e = 2;

Имея в арсенале такой тип данных как массивы, Вы можете писать так: int a = {2, 3, 5, 21, 2};

Это очень удобно, когда имеет место обработка этих данных. Например, теперь Вам нужно к каждой переменной добавить 3. Если бы Вы использовали первый способ объявления, то такая операция заняла бы у Вас достаточно много времени. Тогда как имея в арсенале массивы и циклы, мы можем обрабатывать огромное количество данных не прибегая к монотонному коду.

Перед тем как использовать, массив нужно:

  1. Объявить;
  2. Создать;
  3. Инициализировать.

Запомните это порядок действий и никогда не нарушайте его.
Объявление массивов: 
char s[];
String p[];
или
char [] s;
String [] p;
Создание массивов:
s = new char[20];
p = new String[100];

В квадратных скобках указано количество элементов массива. Это количество нельзя будет поменять потом.
Инициализация массивов: 
после создания – поэлементно: int[] a = {1,2,3,4,5};
при объявлении/создании – массив целиком: int b[] = new int[] {2, 4 ,6};.

Если массив явно не проинициализирован, то после его создания все
элементы равны:
0 – в числовых массивах
false – в boolean-массивах
null – в массивах объектов

Границы массивов:
У всех массивов есть поле length – длина массива (в элементах)
Первый элемент всегда имеет индекс 0 (не путать со значением).
Последний элемент всегда имеет индекс length-1.

После такого количества теории, думаю, нужно немного практики:

Код    
  1. public class ArraysInJava {
  2.  
  3.     public static void main(String[] args) {
  4.         int[] intArray; //объявление массива
  5.         intArray = new int[10];//инициализация массива
  6.         intArray[0] = 1;//первому элементу массива даем значение 1
  7.         intArray[1] = 2;//второму значение 2
  8.         intArray[6] = 7;//остальные значения массива, которым мы
  9.         //не задали значений будут по умолчанию 0
  10.        
  11.         System.out.println(intArray.length);//длина массива - это целое число, которое
  12.         //соответствует значению в квадратных скобках при инициалазации.
  13.         System.out.println("##########################################");
  14.         for (int i = 0; i < intArray.length; i++) {
  15.             System.out.println("Array index " + i + " value: " + intArray[i]);
  16.         }
  17.         System.out.println("##########################################");
  18.         for (int i = 0; i < intArray.length; i++) {
  19.             intArray[i] = 45;//каждый элемент массива может быть изменен
  20.             System.out.println("Array index " + i + " value: " + intArray[i]);
  21.         }
  22.     }
  23.  
  24. }

 

Результат выполнения кода:

массивы работа

Мы рассмотрели одномерные массивы в Java. Сейчас пришла очередь двумерных.

Как Вы уже могли догадаться двумерный массив — это массив массивов. Не нужно пугаться. Все намного проще, чем кажется.

int twoDim [][] = new int [4][4] — вот так можно объявить двумерный массив с размерностью 4 на 4. Будет 4 элемента по вертикали и 4 по горизонтали. Задать значение таком массиву так же просто как и одномерному: twoDim[1][2] = 3. Эта запись будет означать, что мы задали нашему элементу массива, которых находится во втором ряде (индекс начинается с 0) и 3 столбике. На рисунке это будет вот так:

Кстати, вот пример кода:

Код    
  1. public class ArraysInJava {
  2.  
  3.     public static void main(String[] args) {
  4.         int[][] intArray = new int[4][4];
  5.         intArray[1][2] = 3;
  6.         for (int i = 0; i < intArray.length; i++) {
  7.             System.out.println(" ");
  8.             for (int j = 0; j < intArray.length; j++) {
  9.                 System.out.print(" " + intArray[i][j]);
  10.             }
  11.         }
  12.        
  13.     }
  14.  
  15. }

 

Многомерные массивы могут иметь сколько угодно размерностей. Объявление, инициализация и работа с ними идентична одномерным массивам. Если Вы научитесь работать с одномерными и двумерными массивами, то с трехмерными и выше проблем не будет.

 

 

Еще пример. Точнее задание. Я хочу, чтобы Вы подумали и написали приложение, которое выводит числа в таком порядке: матрица

Подсказка: System.out.println(); — печатает с новой строки, тогда как: System.out.print() — печатает в той самой строке.

Прежде, чем смотреть на решение, попробуйте написать его сами. Это очень закрепляет пройденный материал.

Для тех, кто не осилил, предлагаю решение. Не огорчайтесь. Программирование требует времени и терпения.

Код    
  1. public class FormatMatrixPrint {
  2.  
  3.     public static void main(String args[]) {
  4.         int size = 5;
  5.         int matrix[][] = new int[size][size];
  6.         int tmpArray[];
  7.         for (int i = 1; i <= size; i++) {
  8.             tmpArray = new int[i];
  9.             for (int j = 0; j < i; j++) {
  10.                 tmpArray[j] = j;
  11.             }
  12.             matrix[i - 1] = tmpArray;
  13.         }
  14.         for (int i = 0; i < matrix.length; i++) {
  15.             for (int j = 0; j <= i; j++) {
  16.                 System.out.print(matrix[i][j] + " ");
  17.             }
  18.             System.out.println("");
  19.         }
  20.        
  21.     }
  22. }

На этом и закончим знакомство с массивами в языке Java. Сейчас, я предлагаю Вам поискать хорошие задачи на массивы и потренироваться. Если не будет получиться — это нормально. Помните: дорогу осилит идущий.

 

Добавить комментарий