Шрифт:
if (k > max) { max = k; maxi = i; maxj = j; } // Поиск максимума
if (k < min) { min = k; mini = i; minj = j; } // Поиск минимума
}
}
// Меняем максимальный и минимальный элементы в масиве местами
k = m[maxi][maxj]; m[maxi][maxj] = m[mini][minj]; m[mini][minj] = k;
// Вывод измененного массива на экран
System.out.println("New matrix:");
for (int i = 0; i < r; i++) { // Цикл по строкам
for (int j = 0; j < c; j++) { // Цикл по колонкам
System.out.print(String.format("%5d", m[i][j])); // Вывод на экран элемента массива
} System.out.println("");
}
}
}
Результат работы программы:
Matrix:
42 83 94 96 1
2 64 27 32 10
20 86 49 14 36
12 35 14 65 97
New matrix:
42 83 94 96 97
2 64 27 32 10
20 86 49 14 36
12 35 14 65 1
1.7 Динамические массивы-списки
Динамические массивы реализованы на уровне параметризованных классов: Vector и ArrayList. Однако в качестве элементов простые типы выступать не могут, допускаются только объектные типы.
Для управления элементами эти классы используют методы интерфейсов Collection и List:
– add(E o) – добавление элемента в конец;
– add(int index, E element) – вставка элемента в указанную позицию;
– remove(int index) – удаление элемента в указанной позиции;
– remove(Object o) – удаление первого вхождения объекта в списке;
– clear – удаление всех элементов;
– isEmpty – определяет, содержит ли список элементы;
– size – число элементов;
– set(int index, E element) – заменить элемент в указанной позиции новым;
– get(int index) – получить элемент по указанному индексу;
– contains(Object o) – определение, содержится ли указанный объект в списке элементов;
– lastIndexOf(Object o) – поиск последнего вхождения элемента, возвращается индекс элемента или -1;
– indexOf(Object o) – поиск первого вхождения элемента, возвращается индекс элемента или -1;
– toArray – возвращает копию в виде статического массива;
– toArray(T[] a) – сохраняет элементы в указанный массив.
Пример работы с динамическим массивом целых чисел:
package tsn01.arraylist;
import java.util.ArrayList;
public class TSN01_ArrayList {
public static void main(String[] args) {
// Работа с динамическим массивом чисел
ArrayList<Integer> i = new ArrayList<>; // Создание динамического массива целых чисел
i.add(3); // Добавление значения
i.add(new Integer(3)); // Добавление значения
if (i.get(0)==i.get(1)) { System.out.println("Эта строчка не напечатается…"); }
if (i.get(0).equals(i.get(1))) { System.out.println("3=3"); }
i.add(12+5); // Добавление значения
System.out.println("Размер массива: " + i.size);
System.out.println("Элементы массива: " + i.get(0).intValue + ", " + i.get(1)+ ", " + i.get(2));
}
}
Результат работы программы:
3=3
Размер массива: 3
Элементы массива: 3, 3, 17
Пример работы с динамическим массивом строк:
package tsn01.arraylist;
import java.util.ArrayList;
public class TSN01_ArrayList {
public static void main(String[] args) {
// Работа с динамическим массивом строк
ArrayList<String> pozdr = new ArrayList<>; // Массив пожеланий
ArrayList<String> fam = new ArrayList<>; // Массив фамилий
// Добавление поздравления в массив
pozdr.add("Удачи"); pozdr.add("Здоровья"); pozdr.add("Денег");
// добавление фамилии в массив
fam.add("Петров"); fam.add("Сидоров"); fam.add("Иванов");
// Проверка количества поздравлений
if (fam.size > pozdr.size) { return; }
for (int i = 0; i < fam.size; i++) {
// Генерируем случайное число в диапазоне от 0 до длины массива поздравлений
int p = (int) Math.floor(Math.random * pozdr.size);
// Генерация поздравления