/
GermanezZ
/
JavaExercises
Обзор
Документация
Войти
/
GermanezZ
/
JavaExercises
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
AllMetanitLessons/OpenCode/_5th.java
159 строк
6 KB
germa
Уроки по Metanit
04 дек 2024, 20:39
04 дек 2024, 20:39
48d575a
Код
Авторство
О чём код?
package AllMetanitLessons.OpenCode; import java.util.Scanner; /*Реализовать собственный простейший список целых чисел на массиве: реализовать операции вычисления длины списка, добавления элемента в конец, вставки элемента в любое место (середину) массива, удаление элемента по индексу, сравнение двух списков, вывод списка в виде строки, очистку списка, приведение списка в отсортированный вид (реализовать самостоятельно). Запрещается пользоваться готовой реализацией из java.util. Реализовать консольное приложение, демонстрирующее работу со списком. Приложение должно показывать текущее состояние списка и предлагать пользователю (в цикле) добавить элемент, вставить элемент в середину, удалить элемент, отсортировать список, очистить список, либо завершить работу.*/ public class _5th { public static void main(String[] args) { Scanner in = new Scanner(System.in); boolean start = true; int menu; int capacity = 4; int oldCapacity = capacity; int putLast = 0; System.out.println("Вас приветствует приложение, демонстрирующее работу со списком на основе массива"); int[] array = new int[capacity]; while (start) { System.out.println(""" Варианты действий: 1) Добавить элемент 2) Вставить элемент в середину 3) Удалить элемент 4) Отсортировать список 5) Очистить список 6) Завершить работу 7) Показать список"""); menu = in.nextInt(); switch (menu) { case 1 -> { // Добавить элемент System.out.println("Введите целое число"); array[putLast] = in.nextInt(); putLast++; if (putLast == capacity){ int[] buffer = new int[capacity]; System.arraycopy(array, 0, buffer, 0, array.length); capacity+=10; array = new int[capacity]; System.arraycopy(buffer, 0, array, 0, oldCapacity); oldCapacity = capacity; } for(int i=0;i<putLast;i++){ System.out.print(array[i]+ "_"); } System.out.println(); } case 2 -> { // Вставить элемент в середину System.out.println("Введите целое число"); array[(putLast/2)] = in.nextInt(); for(int i=0;i<putLast;i++){ System.out.print(array[i]+ "_"); } System.out.println(); } case 3 -> { System.out.println("Введите номер элемента, который хотите удалить"); int index = in.nextInt()-1; for (int i = index; i < putLast;i++){ array[i] = array[i+1]; } putLast--; if (capacity-putLast==10){ capacity= capacity-10; } } case 4 -> { //Отсортировать список System.out.println("Сортировка списка..."); for (int i = 0; i < putLast; i++) { for(int j = 0; j < putLast - i; j++) { if(array[j + 1] < array[j]) { int swap = array[j]; array[j] = array[j + 1]; array[j + 1] = swap; } } } } case 5 -> { //Очистить список System.out.println("Очистка списка...."); capacity = 4; array = new int[capacity]; putLast = 0; oldCapacity = capacity; System.out.println("Список пуст!"); } case 6 -> { //Завершить работу System.out.println("Exit..."); start = false; } case 7 -> { //Показать список if (putLast == 0){ System.out.println("Список пуст!"); for (int i: array){ System.out.print(array[i] + "_"); } System.out.println(); } else{ for(int i=0;i<putLast;i++){ System.out.print(array[i]+ "_"); } System.out.println(); } } default -> System.out.println("Неверное значение!"); } } } } class Operations{ }