remove delete an element from an array java
Başka bir dizi kullanma, Java 8 Akışlarını Kullanma, ArrayList'i Kullanma gibi Java'da bir Diziden bir öğeyi Silmek veya Kaldırmak için Çeşitli Yöntemleri Öğrenin:
Java dizileri, bir öğeyi kaldırmak için doğrudan bir kaldırma yöntemi sağlamaz. Aslında, Java'daki dizilerin statik olduğunu, bu nedenle dizilerin boyutlarının somutlaştırıldıktan sonra değişemeyeceğini tartışmıştık. Böylece bir elemanı silip dizi boyutunu küçültemeyiz.
Dolayısıyla, diziden bir öğeyi silmek veya kaldırmak istiyorsak, genellikle geçici çözümler olan farklı yöntemler kullanmamız gerekir.
=> Yeni Başlayanlar İçin Tam Java Eğitimi Eğitim Serisine Bakın
Ne öğreneceksin:
Java'da Bir Diziden Bir Öğeyi Kaldırma / Silme
Bu eğitimde, bir diziden bir elemanı silmenin çeşitli yöntemlerini tartışacağız.
O içerir:
- Başka bir Dizi kullanma
- Java 8 akışlarını kullanma
- ArrayList'i kullanma
- System.arraycopy () kullanarak
Başka Bir Dizi Kullanma
Bu, bir dizi elemanını silmenin geleneksel ve biraz verimsiz yöntemidir. Burada orijinal diziye 1'den küçük yeni bir dizi tanımlıyoruz. Daha sonra öğeleri orijinal diziden yeni diziye kopyalıyoruz. Ancak bu kopyalamayı yaparken, belirtilen dizindeki elemanı atlıyoruz.
Bu şekilde, silinecek eleman dışındaki tüm elemanları, elemanın silindiğini belirten yeni diziye kopyalarız.
Bu işlemi aşağıda gösterildiği gibi resimsel olarak temsil edebiliriz.
Bu yöntemi bir Java programında uygulayalım.
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 Çıktı:
mac'da .7z dosyaları nasıl açılır
Java 8 Akışlarını Kullanma
Akışlar, sürüm 8'den itibaren Java'ya yeni bir eklemedir. Java8 akışlarını kullanarak bir diziden bir elemanı silebiliriz. Bunu yapmak için önce dizi bir akım haline dönüştürülür. Ardından, belirtilen dizindeki öğe, akışların filtreleme yöntemi kullanılarak silinir.
'Map' ve 'toArray' yöntemleri kullanılarak öğe silindikten sonra, akış diziye geri dönüştürülür.
Akış kullanılarak bir diziden bir öğenin kaldırılması uygulaması aşağıda gösterilmiştir.
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)); } }
Çıktı:
ArrayList'i kullanma
Bu işlemi gerçekleştirmek için bir ArrayList kullanabiliriz. Bir diziden bir öğeyi kaldırmak için, önce diziyi bir ArrayList'e dönüştürüyoruz ve ardından belirli bir dizindeki öğeyi kaldırmak için ArrayList'in 'remove' yöntemini kullanıyoruz.
Kaldırıldıktan sonra, ArrayList'i diziye geri dönüştürürüz.
Aşağıdaki uygulama, ArrayList kullanılarak bir diziden öğenin kaldırılmasını gösterir.
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)); } }
Çıktı:
Yukarıdaki program, iki koşul için çıktı üretir. İlk olarak, mevcut olmayan bir indeks (10), yani mevcut dizi boyutunun ötesine geçirilir. Program uygun bir mesaj görüntüler ve herhangi bir öğeyi silmez.
İkinci durumda, indeks = 2 geçilir. Bu sefer 2. pozisyondaki eleman silinir ve sonuçtaki dizi geçilir.
System.arraycopy () kullanarak
Bu yöntem, orijinal dizinin öğelerini yeni diziye kopyalamak için ‘arrayCopy’ yöntemini kullanmamız dışında ilk yönteme benzer.
İlk olarak, orijinal dizinin elemanlarını 0'dan dizine yeni diziye kopyalıyoruz. Ardından, indeks + 1'den uzunluk olana kadar elemanları yeni diziye kopyalıyoruz. Böylelikle kopyalarken belirtilen dizindeki elemanı atlayarak yeni bir dizi oluşturuyoruz.
Bu yeni dizi, belirtilen dizindeki bir öğeyi sildikten sonra elde edilen sonuç dizisini gösterir.
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)); } }
Çıktı:
Sıkça Sorulan Sorular
S # 1) Bir Diziden bir öğe nasıl kaldırılır?
Cevap: Java, diziden bir öğeyi kaldırmak için doğrudan bir yöntem sağlamaz. Ancak öğenin silineceği bir dizin verildiğinde, belirtilen dizindeki öğeyi kaldırmak için ArrayList'i kullanabiliriz.
Bunun için önce diziyi ArrayList'e dönüştürüyoruz ve remove yöntemini kullanarak elemanı kaldırıyoruz. Bu yapıldıktan sonra, ArrayList'i tekrar diziye dönüştürürüz. Bu amaçla kullanabileceğimiz birkaç başka geçici çözüm de vardır.
S # 2) ArrayList neyi kaldırır?
Cevap: ArrayList remove yöntemi, argüman olarak sağlanan belirli bir dizindeki ArrayList içindeki öğeyi kaldırır.
.eps dosyası nasıl açılır
S # 3) Java'daki bir Diziden Yinelenenleri nasıl kaldırırsınız?
Cevap: Bir dizideki yinelenen öğeler, öğeleri tek tek sayan ve yalnızca benzersiz öğeleri geçici diziye yerleştiren geçici bir dizi kullanılarak kaldırılabilir. Yinelenenleri kaldırmak için bir dizinin sıralanması gerekir.
S # 4) Filtre yeni bir dizi döndürür mü?
Cevap: Evet. Filtre, orijinal diziyi etkilemeden yeni diziyi döndürür.
S # 5) R Java'da çalışmak mı?
Cevap: Java'da ArrayList'in remove yöntemi, belirtilen dizindeki öğeyi kaldırır. Bağlantılı listede de, kaldırma yöntemi verilen konumdaki düğümü kaldırır.
Sonuç
Bu eğitimde, belirli bir dizindeki bir diziden öğeyi kaldırabileceğimiz çeşitli yolları veya geçici çözümleri gördük.
Sonraki konularımızda, Java'daki diziler üzerinde gerçekleştirilen bazı işlemleri daha tartışacağız.
=> Yoğun Java Eğitim Kılavuzuna Buradan Göz Atın
Önerilen Kaynaklar
- Kod Örnekleriyle Java Dizi Uzunluğu Eğitimi
- Java Dizisi - Java'da Bir Dizinin Elemanları Nasıl Yazdırılır?
- Java'da Bir Dizi Nasıl Sıralanır - Örneklerle Eğitim
- Java Dizisi - Java'da Bir Dizi Bildirin, Oluşturun ve Başlatın
- Java Generic Array - Java'da Genel Diziler Nasıl Simüle Edilir?
- Java'da Bir Diziyi Ters Çevirme - Örneklerle 3 Yöntem
- Örneklerle Java Yansıtma Eğitimi
- Java'da Dizi Nasıl Geçilir / Döndürülür