remove delete an element from an array java
Μάθετε διάφορες μεθόδους για να διαγράψετε ή να καταργήσετε ένα στοιχείο από ένα Array στην Java, όπως Χρήση άλλου πίνακα, Χρήση Java 8 Streams, Χρήση του 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, μπορούμε να διαγράψουμε ένα στοιχείο από έναν πίνακα. Για να γίνει αυτό, πρώτα, ο πίνακας μετατρέπεται σε ροή. Στη συνέχεια, το στοιχείο στο καθορισμένο ευρετήριο διαγράφεται χρησιμοποιώντας τη μέθοδο φίλτρου ροών.
Μόλις διαγραφεί το στοιχείο, χρησιμοποιώντας τις μεθόδους 'χάρτης' και '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» για την αντιγραφή των στοιχείων του αρχικού πίνακα στον νέο πίνακα.
Αρχικά, αντιγράφουμε τα στοιχεία του αρχικού πίνακα από το 0 στο ευρετήριο στο νέο πίνακα. Στη συνέχεια, αντιγράφουμε τα στοιχεία από το ευρετήριο + 1 έως το μήκος στον νέο πίνακα. Έτσι κατά την αντιγραφή, παραλείπουμε το στοιχείο στο καθορισμένο ευρετήριο και δημιουργούμε έναν νέο πίνακα.
Αυτός ο νέος πίνακας δείχνει τον προκύπτοντα πίνακα που λαμβάνεται μετά τη διαγραφή ενός στοιχείου στο καθορισμένο ευρετήριο.
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)); } }
Παραγωγή:

Συχνές Ερωτήσεις
Q # 1) Πώς να αφαιρέσετε ένα στοιχείο από ένα Array;
Απάντηση: Η Java δεν παρέχει μια άμεση μέθοδο για την αφαίρεση ενός στοιχείου από τον πίνακα. Ωστόσο, δεδομένου ενός ευρετηρίου στον οποίο το στοιχείο πρόκειται να διαγραφεί, μπορούμε να χρησιμοποιήσουμε το ArrayList για να αφαιρέσουμε το στοιχείο στο καθορισμένο ευρετήριο.
Για αυτό, πρώτα, μετατρέπουμε τον πίνακα σε ArrayList και χρησιμοποιώντας τη μέθοδο αφαίρεσης αφαιρούμε το στοιχείο. Μόλις γίνει αυτό, μετατρέπουμε το ArrayList πίσω στον πίνακα. Υπάρχουν επίσης αρκετές άλλες λύσεις που μπορούμε να χρησιμοποιήσουμε για το σκοπό αυτό.
Q # 2) Τι κάνει το ArrayList Remove;
Απάντηση: Η μέθοδος ArrayList remove καταργεί το στοιχείο στο ArrayList σε ένα δεδομένο ευρετήριο που παρέχεται ως όρισμα.
διαφορά μεταξύ java και c ++
Q # 3) Πώς καταργείτε τα διπλότυπα από ένα Array στην Java;
Απάντηση: Τα διπλά στοιχεία από έναν πίνακα μπορούν να αφαιρεθούν χρησιμοποιώντας έναν προσωρινό πίνακα που θα μετρά τα στοιχεία ένα προς ένα και θα τοποθετεί μόνο τα μοναδικά στοιχεία στον προσωρινό πίνακα. Πρέπει να ταξινομηθεί ένας πίνακας για να αφαιρέσετε τα διπλά.
Q # 4) Το φίλτρο επιστρέφει έναν νέο πίνακα;
Απάντηση: Ναί. Το φίλτρο επιστρέφει τον νέο πίνακα χωρίς να επηρεάζει τον αρχικό πίνακα.
Q # 5) Πώς το R αφαίρεση εργασίας στην Java;
Απάντηση: Η μέθοδος κατάργησης του ArrayList στη Java καταργεί το στοιχείο στο καθορισμένο ευρετήριο. Στη συνδεδεμένη λίστα, επίσης, η μέθοδος κατάργησης αφαιρεί τον κόμβο στη δεδομένη θέση.
συμπέρασμα
Σε αυτό το σεμινάριο, έχουμε δει τους διάφορους τρόπους ή λύσεις χρησιμοποιώντας τους οποίους μπορούμε να αφαιρέσουμε το στοιχείο από έναν πίνακα σε ένα δεδομένο ευρετήριο.
Στα επόμενα θέματα, θα συζητήσουμε μερικές ακόμη λειτουργίες που εκτελούνται σε συστοιχίες στην Java.
=> Δείτε τον Οδηγό Εντατικής Εκπαίδευσης Java εδώ
Συνιστώμενη ανάγνωση
- Εκμάθηση μήκους σειράς Java με παραδείγματα κώδικα
- Java Array - Πώς να εκτυπώσετε στοιχεία ενός πίνακα στην Java;
- Πώς να ταξινομήσετε μια σειρά σε Java - Tutorial με παραδείγματα
- Java Array - Δήλωση, δημιουργία και αρχικοποίηση μιας σειράς στην Java
- Java Generic Array - Πώς να προσομοιώσετε γενικές συστοιχίες στην Java;
- Reverse An Array In Java - 3 μέθοδοι με παραδείγματα
- Εκμάθηση Java Reflection με παραδείγματα
- Πώς να περάσετε / επιστρέψετε μια σειρά στην Java