Масиви. Одновимірні масиви
- 1. Що таке масив? Призначення масивів у програмі
- 2. Які типи даних можуть приймати елементи масиву?
- 3. Як вигладає загальна форма опису одновимірного масиву?
- 4. Приклад створення та використання одновимірного масиву з іменем d, в якому є 5 елементів типу int
- 5. Приклад створення та використання одновимірного масиву f, що містить 10 елементів типу float
- 6. Приклад створення та використання одновимірного масиву x, в якому 20 елементів мають тип double
- 7. Приклад фрагменту коду занулення одновимірного масиву з іменем x, що містить 20 чисел типу double
- 8. Приклад обчислення суми елементів одновимірного масиву M, в якому є 50 дійсних чисел
- 9. Приклад пошуку максимального значення в масиві зі 100 цілих чисел
- 10. Приклад сортування одновимірного масиву дійсних чисел методом вставки
- 11. Як в Java здійснюється присвоєння одного масиву іншому? Метод clone()
- 12. Як здійснюється початкова ініціалізація одновимірного масиву?
- 13. Приклад опису одновимірного масиву класів
- 14. Приклад опису одновимірного масиву інтерфейсів
- 15. Приклад опису і використання одновимірного масиву рядків
- Зв’язані теми
Пошук на інших ресурсах:
1. Що таке масив? Призначення масивів у програмі
Масив – це набір (група) однотипних елементів, об’єднаних одним ім’ям. Масиви дозволяють зручно групувати інформацію та отримувати доступ до неї.
Масиви можуть бути одновимірними, двовимірними та багатовимірними.
Позиція елементу в масиві називається індексом. У мові Java позиція першого елементу в масиві починається з нуля.
Масив вважається одновимірним, якщо для визначення місцеположення елементу в масиві потрібно вказати значення одного індексу.
Масив вважається двовимірним, якщо для визначення місцеположення елементу в масиві потрібно вказати значення двох індексів.
⇑
2. Які типи даних можуть приймати елементи масиву?
Елементи масиву можуть бути будь-якого типу, допустимого в мові Java.
Цей тип визначає тип даних кожного з елементів, що складають даний масив.
Детальний опис примітивних типів даних можна знайти тут.
⇑
3. Як вигладає загальна форма опису одновимірного масиву?
Загальна форма опису одновимірного масиву:
тип ім’я_змінної[];
або
тип[] ім’я_змінної;
де
- тип означає тип елементу масиву, що називається також базовим типом;
- ім’я_змінної – назва масиву, за якою буде здійснюватись доступ до елементів масиву.
Після цього потрібно здійснити виділення пам’яті під масив. Загальна форма виділення пам’яті має вигляд:
ім’я_змінної = new тип[розмір];
де
- тип – базовий тип елементів масиву;
- розмір – кількість елементів масиву.
Виділення пам’яті для елементів масиву можна здійснювати одразу після його опису. У цьому випадку загальна форма опису масиву має вигляд:
тип ім’я_змінної[] = new тип[розмір];
або
тип[] ім’я_змінної = new тип[розмір];
При виділенні пам’яті елементи масиву заповнюються:
- нульовими значеннями для числових типів;
- значеннями false для логічного типу boolean;
- пустими значеннями null для посилальних типів.
Отже, процес створення масиву проходить у два етапи:
- оголошується змінна потрібного типу масиву;
- з допомогою оператора new виділяється пам’ять для елементів масиву.
⇑
4. Приклад створення та використання одновимірного масиву з іменем d, в якому є 5 елементів типу int
// опис масиву з іменем d в якому елементи мають тип int int d[]; d = new int[5]; // виділення пам'яті для 5 елементів типу int масиву d // доступ до елементів масиву d d[2] = -8; // у 3-й елемент масиву записати число -8 d[0] = -1000; // у 1-й елемент масиву записати число -1000 d[4] = 29; d[5] = 300; // помилка - ArrayIndexOutOfBoundsException: 5
У даному прикладі створення масиву можна здійснювати різними способами.
Спосіб 1.
int d[]; d = new int[5];
Спосіб 2.
int[] d; d = new int[5];
Спосіб 3.
int[] d = new int[5];
Спосіб 4.
int d[] = new int[5];
⇑
5. Приклад створення та використання одновимірного масиву f, що містить 10 елементів типу float.
float[] f; // масив з іменем f, елементи масиву мають тип float f = new float[10]; // виділення пам'яті для 10 елементів масиву f f[0] = 0.0f; f[1] = 1.0f; f[2] = 2.0f; f[3] = 3f; f[4] = 4.0f; f[5] = 5.0f;
⇑
6. Приклад створення та використання одновимірного масиву x, в якому 20 елементів мають тип double.
// опис масиву x з 20 елементів типу double double x[] = new double[20]; x[8] = -3.3998; x[3] = -5.5; // x[3] = -5.5 x[3] = x[7]; // x[3] = 0.0
⇑
7. Приклад фрагменту коду занулення одновимірного масиву з іменем x, що містить 20 чисел типу double.
У даному прикладі занулюється масив дійсних чисел типу double.
double x[] = new double[20]; // опис масиву x з 20 елементів типу double for (int i=0; i<x.length; i++) x[i] = 0.0;
⇑
8. Приклад обчислення суми елементів одновимірного масиву M, в якому є 50 дійсних чисел.
// обчислення суми елементів масиву float[] M = new float[50]; float sum = 0; // шукана сума // заповнення масиву даними // ... // цикл обчислення суми for (int i=0; i<M.length; i++) sum = sum + M[i];
⇑
9. Приклад пошуку максимального значення в масиві зі 100 цілих чисел.
// пошук максимального значення int[] A = new int[100]; // оголошення масиву int max; // шукане значення // заповнення масиву даними // ... // цикл пошуку максимального значення max = A[0]; for (int i=1; i<A.length; i++) if (max < A[i]) max = A[i];
⇑
10. Приклад сортування одновимірного масиву дійсних чисел методом вставки.
float M[] = new float[5]; // оголошення масиву з 5 елементів float x; // допоміжна змінна // ввід масиву M, заповнення значеннями // ... // цикл сортування методом вставки for (int i=0; i<M.length-1; i++) for (int j=i; j>=0; j--) if (M[j]>M[j+1]) { x = M[j]; M[j] = M[j+1]; M[j+1] = x; }
⇑
11. Як в Java здійснюється присвоєння одного масиву іншому? Метод clone().
Для копіювання масивів використовується метод clone() з бібліотеки Java.
Приклад присвоєння одного масиву іншому з використанням методу clone().
float[] f; // масив з іменем f, елементи масиву мають тип float float f2[]; f = new float[5]; // виділення пам'яті для 5 елементів масиву f f2 = new float[5]; // виділення пам'яті для масиву f2 f[0] = 0.0f; f[1] = 1.0f; f[2] = 2.0f; f[3] = 3f; f[4] = 4.0f; // метод clone() - глибоке копіювання f2 = f.clone(); // масиви f та f2 - різні масиви f[2]=3.8f; // f2[2] = 3.8; f[2] = 2.0
Якщо написати:
f2 = f;
то обидві змінні f та f2 будуть вказувати на одну ділянку пам’яті.
⇑
12. Як здійснюється початкова ініціалізація одновимірного масиву?
В програмах на Java масиви можна ініціалізувати під час їх оголошення. У цьому випадку вказується список виразів, що розділяються символом кома ‘ , ‘. Цей список виразів береться у фігурні дужки.
Приклади ініціалізації масивів різних розмірностей та різних типів їх елементів.
// ініціалізація одновимірного масиву з 5 чисел типу double double M[] = { 3.8, -2.55, 0.23, -11.45, 3.85 }; // ініціалізація одновимірного масиву з 5 чисел типу byte byte[] B = { -1, 25, 44, -12, 14 }; // ініціалізація масиву з 10 елементів типу char char C[] = { 'a', 'b', 'c', 'd', '5', ';', '9', 'N', '!', '
⇑
13. Приклад опису одновимірного масиву класів.
Нехай задано клас з іменем MyPoint. Потрібно описати об’єкт-змінну, що є масивом з 3 класів типу клас MyPoint.
// оголошення класу MyPoint class MyPoint { int x; // внутрішня змінна x int y; // внутрішня змінна y // реалізація методів класу public void SetXY(int xx, int yy) { x = xx; y = yy; } // методи класу public int GetX() { return x; } public int GetY() { return y; } } ... // використання масиву класів у програмі // оголошення змінної типу масив класів MyPoint MyPoint[] mp; // виділення пам'яті для масиву класів mp = new MyPoint[10]; // виділення пам'яті для кожного класу for (int i=0; i<mp.length; i++) mp[i] = new MyPoint(); mp[0].SetXY(10, 20); mp[1].SetXY(30, -100); mp[2].SetXY(4, -345); int d; d = mp[2].GetY(); // d = -345 d = mp[0].GetX(); // d = 10 d = mp[1].GetY(); // d = -100
⇑
14. Приклад опису одновимірного масиву інтерфейсів.
Нехай задано клас з іменем MyPoint. Клас реалізує інтерфейс MyInterface. Потрібно описати об’єкт-змінну, що є масивом з 5 елементів типу інтерфейс MyInterface.
// оголошення інтерфейсу MyInterface interface MyInterface { void SetXY(int xx, int yy); } // оголошення класу MyPoint class MyPoint implements MyInterface { int x; // внутрішня змінна x int y; // внутрішня змінна y // реалізація методу інтерфейсу public void SetXY(int xx, int yy) { x = xx; y = yy; } // методи класу public int GetX() { return x; } public int GetY() { return y; } } ... // оголошення змінної типу масив класів MyPoint MyPoint[] mp; // виділення пам'яті для масиву класів mp = new MyPoint[3]; // виділення пам'яті для кожного класу for (int i=0; i<mp.length; i++) mp[i] = new MyPoint(); mp[2].SetXY(4, -345); // заповнити значеннями члени класу int d = mp[2].GetY(); // d = -345 // опис змінної mi типу масив інтерфейсів MyInterface MyInterface[] mi; // виділення пам'яті під масив посилань на інтерфейси mi = new MyInterface[5]; // виділення пам'яті під кожну змінну-інтерфейс for (int i=0; i<mi.length; i++) mi[i] = new MyPoint(); // використання змінної mi mi[0] = mp[2]; // mi[0] посилається на mp[2] mi[0].SetXY(23, 35); // змінити mi[0] - означає змінити mp[2] d = mp[2].GetY(); // d = 35
⇑
15. Приклад опису і використання одновимірного масиву рядків.
В мові Java для роботи з рядками введено особливий клас String. У даному прикладі продемонстровано операції:
- оголошення масиву рядків та його ініціалізації;
- копіювання масиву рядків в інший масив;
- використання методу clone() для копіювання масивів рядків.
// оголошення та ініціалізація масиву рядків String[] M1 = { "Text #1", "Text #2", "Text #3" }; // огололошення масиву M2 String[] M2; M2 = new String[3]; // присвоїти один масив іншому for (int i=0; i<3; i++) M2[i] = M1[i]; // присвоєння масивів з використанням методу clone() String[] M3; M3 = M1.clone();