Как удалить элемент из массива java

Аватар пользователя Сергей Якимович
Сергей Якимович
18 ноября 2022

Можно воспользоваться методом System.arraycopy() :

var result = new int[values.length - 1];
// сначала копируем элементы с 0 до index
System.arraycopy(values, 0, result, 0, index);
// затем с index+1 до конца
System.arraycopy(values, index + 1, result, index, values.length - 1 - index);
0 0
Аватар пользователя Maksim Litvinov
Maksim Litvinov
22 августа 2022

В Java массив имеет фиксированный размер и простого способа удалить элемент из массива не существует. Удаление элемента сводится к формированию нового массива на основе старого, в которм будет отсутствовать удаляемый элемент. Ниже пример реализации метода remove(), который удаляет элемент по определенному индексу:

import java.util.Arrays;

class MyArrayUtils {
    public static int[] remove(int[] values, int index) {
      // Создаем пустой массив размером на один меньше чем исходный
      // так как мы удаляем один элемент
      var result = new int[values.length - 1];

      for (var i = 0; i < values.length; i++) {
          if (i != index) { // Копируем все кроме index
              // Элементы стоящие дальше index смещаются влево
              var newIndex = i < index ? i : i - 1;
              result[newIndex] = values[i];
          }
      }

      return result;
    }
}

int[] numbers = {1, 5, 8, 100};

System.out.println(Arrays.toString(MyArrayUtils.remove(numbers, 2)));
// => [1, 5, 100]

// Исходный массив не поменялся
System.out.println(Arrays.toString(numbers));
// => [1, 5, 8, 100]
0 0
Основы Java за 14 дней
  • 62 урока в онлайн-тренажере
  • 4 живых вебинара и масскодинг
  • Помощь наставника на весь период обучения

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки