Двовимірні та багатовимірні масиви
- 1. Які масиви називаються двовимірними та багатовимірними?
- 2. Приклад опису та використання двовимірних масивів в програмі
- 3. Приклад опису двовимірного масиву альтернативними варіантами
- 4. Як здійснюється ініціалізація двовимірного масиву? Приклад
- 5. Приклад оголошення двовимірного масиву, з різною кількістю елементів в одному рядку (різною розмірністю другого виміру)
- 6. Приклад оголошення багатовимірних масивів
- 7. Приклад ініціалізації багатовимірного масиву
- 8. Приклад занулення двовимірної матриці дійсних чисел розміром 5×5
- 9. Приклад пошуку заданого елементу в матриці цілих чисел розміром 10×10
- 10. Приклад пошуку максимального значення в матриці дійсних чисел
- 11. Приклад обчислення суми елементів двовимірної матриці дійсних чисел
- 12. Приклад оголошення та використання двовимірного масиву рядків
- 13. Приклад оголошення та використання двовимірного масиву класів
- Зв’язані теми
Пошук на інших ресурсах:
1. Які масиви називаються двовимірними та багатовимірними?
Загальні відомості про масиви та використання одновимірних масивів детально описуються тут.
Масив вважається двовимірним, якщо для визначення місцеположення елементу в масиві потрібно вказати значення двох індексів. Двовимірний масив асоціюється з таблицею. Якщо кількість стовпців і рядків масиву (таблиці) однакова, то масив ще називають матрицею.
Масив вважається багатовимірним, якщо для визначення місцеположення елементу в масиві потрібно вказати значення трьох і більше індексів.
2. Приклад опису та використання двовимірних масивів в програмі
// матриця цілих чисел розміром 3*4 int Matr[][]; Matr = new int[3][4]; // заповнення комірок матриці Matr[0][2] = 23; Matr[0][0] = -220; Matr[2][3] = 380; // матриця дійсних чисел розміром 2*3 float[][] MatrF = new float[2][3]; MatrF[0][2] = 9.88f; MatrF[0][0] = -33.8329f;
3. Приклад опису двовимірного масиву альтернативними варіантами
В Java двовимірний масив можна описувати різними способами. У даному прикладі показано різні варіанти опису двовимірного масиву цілих чисел розміром 2×3.
Варіант 1.
// оголошення матриці розміром 2*3 int[] Matr[] = new int[2][3];
Варіант 2.
int[][] Matr = new int[2][3];
Варіант 3.
int[][] Matr = new int[2][3];
Варіант 4.
int[][] Matr; Matr = new int[2][3];
Варіант 5.
int[] Matr[]; Matr = new int[2][3];
Варіант 6.
int Matr[][]; Matr = new int[2][3];
Варіант 7.
int Matr[][] = new int[2][]; Matr[0] = new int[3]; Matr[1] = new int[3];
Варіант 8.
int[][] Matr = new int[2][]; Matr[0] = new int[3]; Matr[1] = new int[3];
Варіант 9.
int[] Matr[] = new int[2][]; Matr[0] = new int[3]; Matr[1] = new int[3];
4. Як здійснюється ініціалізація двовимірного масиву? Приклад
Щоб здійснити ініціалізацію двовимірного масиву потрібно ініціалізатор кожного виміру взяти в окремий ряд фігурних дужок.
У наступному прикладі оголошується двовимірний масив дійсних чисел з іменем X. Розмір масиву 2×3.
// ініціалізація двовимірного масиву розміром 2*3 float X[][] = { { 0.1f, 0.3f, 1.2f }, { 1.3f, 2.8f, 3.2f } };
5. Приклад оголошення двовимірного масиву, з різною кількістю елементів в одному рядку (різною розмірністю другого виміру).
У даному прикладі оголошується двовимірний масив, в якому кількість елементів у кожному рядку є різною. Потім цей масив заповнюється значеннями як показано на рисунку.
Рисунок. Масив, згідно з умовою задачі
// оголошення масиву, в якому // 3 рядки з різною розмірністю другого виміру long M[][] = new long[3][]; M[0] = new long[2]; // 2 елементи в нульовому рядку M[1] = new long[4]; // 4 елементи в першому рядку M[2] = new long[3]; // 3 елементи в другому рядку M[0][0] = 10l; M[0][1] = 350l; M[1][0] = 25l; M[1][1] = 45l; M[1][2] = 85l; M[1][3] = 1200l; M[2][0] = 55l; M[2][1] = 450l; M[2][2] = 2500l;
6. Приклад оголошення багатовимірних масивів
Багатовимірні масиви використовують 3 і більше індексів для доступу до елементів масиву.
// оголошення масиву розміром 3*2*4 int M[][][] = new int[3][2][4]; // використання масиву M[1][1][2] = 23; M[0][0][1] = -12; // оголошення масиву розміром 5*10*15 double[][][] D; D = new double[5][10][15]; D[3][7][11] = -29.33;
7. Приклад ініціалізації багатовимірного масиву.
У даному прикладі ініціалізується масив розміром 2×3×3.
// ініціалізація масиву розміром 2*3*3 byte B[][][] = { { { 0, 1, 2 }, { 1, 2, 3 }, { 3, 4, 5 } }, { { 1, 2, 3 }, { 2, 3, 4 }, { 5, 6, 7 } } };
8. Приклад занулення двовимірної матриці дійсних чисел розміром 5×5
// занулити матрицю розміром 5*5 double Matrix[][] = new double[5][5]; for (int i=0; i<5; i++) for (int j=0; j<Matrix[i].length; j++) Matrix[i][j]=0.0;
9. Приклад пошуку заданого елементу в матриці цілих чисел розміром 10×10
// пошук елементу в матриці short Matrix[][] = new short[10][10]; boolean f_is; short num; // шуканий елемент // ввід значення num // ... f_is = false; // спочатку приймаємо, що елементу немає в матриці for (int i=0; i<10; i++) for (int j=0; j<Matrix[i].length; j++) if (Matrix[i][j]==num) f_is = true; // елемент знайдено
10. Приклад пошуку максимального значення в матриці дійсних чисел
// пошук максимуму в матриці float Matrix[][] = new float[10][10]; float max; // шукане максимальне значення // ... max = Matrix[0][0]; // прийняти, що max - один з елементів матриці for (int i=0; i<10; i++) for (int j=0; j<Matrix[i].length; j++) if (Matrix[i][j]>max) max = Matrix[i][j];
11. Приклад обчислення суми елементів двовимірної матриці дійсних чисел
// сума елементів матриці float Matrix[][] = new float[10][10]; float sum; // шукана сума // ... sum = 0; for (int i=0; i<10; i++) for (int j=0; j<Matrix[i].length; j++) sum = sum + Matrix[i][j];
12. Приклад оголошення та використання двовимірного масиву рядків
У мові Java для роботи з рядками введено спеціальний клас String. У даному прикладі наведено різні варіанти оголошення, ініціалізації та використання двовимірного масиву рядків.
// оголошення двовимірного масиву рядків String M1[][] = new String[5][5]; // створення змінної типу масив // запис інформації в масив рядків for (int i=0; i<5; i++) for (int j=0; j<M1[i].length; j++) M1[i][j] = "Item #" + i + j; // глибоке копіювання масивів з допомогою методу clone() String M2[][] = M1.clone(); // масиви M1 і M2 вказують на різні ділянки пам'яті // оголошення та ініціалізація масиву рядків розміром 3*3 String M3[][] = { { "Item-00", "Item-01", "Item-02" }, { "Item-10", "Item-11", "Item-12" }, { "Item-20", "Item-21", "Item-22" } }; // поверхневе копіювання String M4[][]; // опис змінної типу двовимірний масив рядків M4 = M1; // масиви M1 і M4 вказують на одну й ту ж ділянку пам'яті // зміна в масиві M1 призведе до зміни в масиві M4 і навпаки M1[1][4] = "1111"; // M4[1][4] = "1111" M4[1][4] = "2222"; // M1[1][4] = "2222"
13. Приклад оголошення та використання двовимірного масиву класів
У даному прикладі оголошено двовимірний масив класів розміром 3×4. Процес оголошення змінної відбувається в декілька етапів:
- оголосити змінну типу двовимірний масив класу MyPoint;
- виділити пам’ять під посилання на класи розміром 3×4;
- виділити пам’ять під кожен елемент масиву, що є класом.
// оголошення змінної mp типу двовимірний масив MyPoint[][] mp; // виділення пам'яті для масиву класів розміром 3*4 mp = new MyPoint[3][4]; // виділення пам'яті для кожного елементу масиву (класу) for (int i=0; i<3; i++) for (int j=0; j<mp[i].length; j++) mp[i][j] = new MyPoint(); // використання масиву в програмі for (int i=0; i<3; i++) for (int j=0; j<mp[i].length; j++) mp[i][j].SetXY(i, j); int d; d = mp[2][2].GetY(); // d = 2 d = mp[1][2].GetX(); // d = 1