remove delete an element from an array java
Научете различни методи за изтриване или премахване на елемент от масив в Java, като например Използване на друг масив, Използване на Java 8 потоци, Използване на ArrayList:
Java масивите не предоставят метод за директно премахване за премахване на елемент. Всъщност вече обсъдихме, че масивите в Java са статични, така че размерът на масивите не може да се промени, след като бъдат създадени екземпляри. По този начин не можем да изтрием елемент и да намалим размера на масива.
Така че, ако искаме да изтрием или премахнем елемент от масива, трябва да използваме различни методи, които обикновено са заобиколни решения.
=> Вижте пълната серия уроци за обучение за Java за начинаещи
Какво ще научите:
Премахване / изтриване на елемент от масив в Java
В този урок ще обсъдим различните методи за изтриване на елемент от масив.
Включва:
- Използване на друг масив
- Използване на Java 8 потоци
- Използване на ArrayList
- Използване на System.arraycopy ()
Използване на друг масив
Това е традиционният и донякъде неефективен метод за изтриване на елемент от масив. Тук дефинираме нов масив с размер по-малък от 1 спрямо оригиналния масив. След това копираме елементите от оригиналния масив в новия масив. Но докато правим това копиране, пропускаме елемента при посочения индекс.
По този начин копираме всички елементи с изключение на елемента, който трябва да бъде изтрит, в новия масив, показващ, че елементът е изтрит.
Можем да представим тази операция изобразително, както е показано по-долу.
Нека внедрим този метод в Java програма.
import java.util.Arrays; class Main { public static void main(String() args) { // define original array int() tensArray = { 10,20,30,40,50,60}; // Print the original array System.out.println('Original Array: ' + Arrays.toString(tensArray)); // the index at which the element in the array is to be removed int rm_index = 2; // display index System.out.println('Element to be removed at index: ' + rm_index); // if array is empty or index is out of bounds, removal is not possible if (tensArray == null || rm_index<0 || rm_index>= tensArray.length) { System.out.println('No removal operation can be performed!!'); } // Create a proxy array of size one less than original array int() proxyArray = new int(tensArray.length - 1); // copy all the elements in the original to proxy array except the one at index for (int i = 0, k = 0; i Изход:

Използване на Java 8 Streams
Потоците са ново допълнение към Java от версия 8 нататък. Използвайки потоци Java8, можем да изтрием елемент от масив. За да направите това, първо, масивът се преобразува в поток. След това елементът в посочения индекс се изтрива с помощта на филтърния метод на потоци.
След като елементът бъде изтрит, използвайки методите ‘map’ и ‘toArray’, потокът се преобразува обратно в масива.
Изпълнението на премахването на елемент от масив с помощта на поток е показано по-долу.
import java.util.Arrays; import java.util.stream.IntStream; class Main { // Function to remove the element public static int() removeArrayElement(int() oddArray, int index) { //array is empty or index is beyond array bounds if (oddArray == null || index <0 || index>= oddArray.length) { return oddArray; } // delete the element at specified index and return the array return IntStream.range(0, oddArray.length) .filter(i -> i != index) .map(i ->oddArray(i)).toArray(); } public static void main(String() args) { int() oddArray = { 1, 3,5,7,9,11}; // define array of odd numbers System.out.println('Original Array: ' + Arrays.toString(oddArray)); // Print the resultant array int index = 2; // index at which element is to be removed System.out.println('Element to be removed at index: ' + index); // display index // function call removeArrayElement oddArray = removeArrayElement(oddArray, index); // Print the resultant array System.out.println('Array after deleting element: ' + Arrays.toString(oddArray)); } }
Изход:

Използване на ArrayList
Можем да използваме ArrayList, за да извършим тази операция. За да премахнем елемент от масив, първо преобразуваме масива в ArrayList и след това използваме метода ‘remove’ на ArrayList, за да премахнем елемента в определен индекс.
След като бъде премахнат, ние преобразуваме ArrayList обратно в масива.
Следващото изпълнение показва премахване на елемента от масив с помощта на ArrayList.
import java.util.*; import java.util.stream.*; class Main { public static int() remove_Element(int() myArray, int index) { if (myArray == null || index <0 || index>= myArray.length) { System.out.println('non-existing index'); return myArray; } //array to arrayList List arrayList = IntStream.of(myArray) .boxed().collect(Collectors.toList()); // Remove the specified element arrayList.remove(index); // return the resultant array returnarrayList.stream().mapToInt(Integer::intValue).toArray(); } public static void main(String() args) { int() myArray = { 11,22,33,44,55,66,77,88,99,111 }; System.out.println('Original Array: ' + Arrays.toString(myArray)); int index = 10; System.out.println('Index at which element is to be deleted: ' + index); myArray = remove_Element(myArray, index); System.out.println('Resultant Array: ' + Arrays.toString(myArray) + '
'); index = 2; System.out.println('Index at which element is to be deleted: ' + index); myArray = remove_Element(myArray, index); System.out.println('Resultant Array: ' + Arrays.toString(myArray)); } }
Изход:

Горната програма произвежда изход за две условия. Първо се предава несъществуващ индекс (10), т.е.отвъд текущия размер на масива. Програмата показва подходящо съобщение и не изтрива нито един елемент.
Във втория случай се предава индекс = 2. Този път елементът в позиция 2 се изтрива и резултантният масив се предава.
Използване на System.arraycopy ()
Този метод е подобен на първия метод, с изключение на това, че използваме метода ‘arrayCopy’ за копиране на елементите на оригиналния масив в новия масив.
c ++ въпроси за интервю за опитни професионалисти
Първо копираме елементите на оригиналния масив от 0, за да индексираме в новия масив. След това копираме елементите от index + 1 до length в новия масив. По този начин, докато копираме, пропускаме елемента при посочения индекс и генерираме нов масив.
Този нов масив показва резултантния масив, който се получава след изтриване на елемент с посочения индекс.
import java.util.Arrays; class Main { public static void main(String() args) { // define the array of integers int() intArray = { 10,20,30,40,50 }; // display the original array System.out.println('Original Array: ' + Arrays.toString(intArray)); // index at which the element is to be deleted int index = 2; // the index System.out.println('Element to be deleted at index: ' + index); // check if the array is empty or index is out of bounds if (intArray == null || index <0 || index>= intArray.length) { System.out.println('No removal operation can be performed!!'); } // create an array to hold elements after deletion int() copyArray = new int(intArray.length - 1); // copy elements from original array from beginning till index into copyArray System.arraycopy(intArray, 0, copyArray, 0, index); // copy elements from original array from index+1 till end into copyArray System.arraycopy(intArray, index + 1, copyArray, index, intArray.length - index - 1); // display the copied array after deletion System.out.println('Array after deleting an element: ' + Arrays.toString(copyArray)); } }
Изход:

често задавани въпроси
В # 1) Как да премахна един елемент от масив?
Отговор: Java не предоставя директен метод за премахване на елемент от масива. Но като се има предвид индекс, при който елементът трябва да бъде изтрит, можем да използваме ArrayList, за да премахнем елемента при посочения индекс.
За това първо преобразуваме масива в ArrayList и с помощта на метода remove премахваме елемента. След като приключим, преобразуваме ArrayList обратно в масива. Има и няколко други решения, които можем да използваме за тази цел.
В # 2) Какво прави премахването на ArrayList?
Отговор: Методът на премахване на ArrayList премахва елемента в ArrayList при даден индекс, който се предоставя като аргумент.
как да отворите .eps файл
В # 3) Как премахвате дубликати от масив в Java?
Отговор: Дублиращи се елементи от масив могат да бъдат премахнати с помощта на временен масив, който ще брои елементите един по един и само ще поставя уникалните елементи във временния масив. Трябва да се сортира масив, за да се премахнат дубликатите.
В # 4) Филтърът връща ли нов масив?
Отговор: Да. Филтърът връща новия масив, без да засяга оригиналния масив.
Въпрос # 5) Как R да работите в Java?
Отговор: Методът за премахване на ArrayList в Java премахва елемента при посочения индекс. В свързания списък методът remove също премахва възела в дадената позиция.
Заключение
В този урок видяхме различния начин или заобиколни решения, чрез които можем да премахнем елемента от масив при даден индекс.
В следващите ни теми ще обсъдим още някои операции, извършени върху масиви в Java.
=> Вижте Интензивното ръководство за обучение по Java тук
Препоръчително четене
- Урок за дължина на масив Java с примери за кодове
- Java Array - Как да отпечатвате елементи от масив в Java?
- Как да сортираме масив в Java - Урок с примери
- Java Array - Декларирайте, създайте и инициализирайте масив в Java
- Java Generic Array - Как да симулираме Generic Array в Java?
- Обръщане на масив в Java - 3 метода с примери
- Урок за отражение на Java с примери
- Как да предадете / върнете масив в Java