Een element verwijderen uit een array in Java

1. Overzicht

In deze korte tutorial leren we over de verschillende manieren waarop we dat kunnen verwijder een element uit een array in Java met behulp van de Apache Commons Lang-bibliotheek.

2. Maven

Laten we de commons-lang3 afhankelijkheid van ons project pom.xml het dossier:

 org.apache.commons commons-lang3 3.9 

3. Een element verwijderen

Laten we, voordat we beginnen, eens kijken wat er gebeurt als we een element uit een array verwijderen zonder de ArrayUtils klasse uit de Apache Commons Lang-bibliotheek.

Gegeven de onderstaande array, laten we een element verwijderen op index 2:

Een eenvoudige manier om dit te doen, is door de waarde te vervangen die is opgeslagen op index 2 met de waarde opgeslagen op index 3 totdat we het einde van de array bereiken:

Merk op dat door het element op de bovenstaande manier te verwijderen, de grootte van de array blijft hetzelfde en de waarde opgeslagen bij de laatste index zou leeg zijn. Omdat arrays een vaste geheugengrootte toegewezen tijdens initialisatieAls u een element verwijdert, wordt de grootte van de array niet aangepast.

Laten we nu eens kijken naar de matrixweergave wanneer we een element verwijderen met de verwijderen methode van ArrayUtils klasse van Apache Commons Lang:

Zoals we kunnen zien, wordt de array-grootte hier aangepast naar 5 nadat het element is verwijderd. De verwijderen method maakt een geheel nieuwe array en kopieert alle waarden behalve de waarde die wordt verwijderd.

De ArrayUtils class biedt twee manieren om een ​​element uit een array te verwijderen. Laten we deze hierna bekijken.

4. Index gebruiken als invoer

De eerste manier waarop we een element kunnen verwijderen, is door zijn index met ArrayUtils # remove:

openbare int [] removeAnElementWithAGivenIndex (int [] array, int index) {return ArrayUtils.remove (array, index); }

Een andere variatie is de Verwijder alles methode, die we kunnen gebruiken om meerdere elementen uit een array te verwijderen, gezien hun indices:

public int [] removeAllElementsWithGivenIndices (int [] array, int ... indices) {return ArrayUtils.removeAll (array, indices); }

5. Element als invoer gebruiken

Of, laten we zeggen dat we de index niet kennen van wat we verwijderen. In dat geval kunnen wij het te verwijderen element voorzien met ArrayUtils # removeElement:

public int [] removeFirstOccurrenceOfGivenElement (int [] array, int element) {return ArrayUtils.removeElement (array, element); }

Hier is nog een andere nuttige variant van deze methode ArrayUtils # removeElements, voor het geval er meer dan één element is dat we willen verwijderen:

public int [] removeAllGivenElements (int [] array, int ... elementen) {return ArrayUtils.removeElements (array, elementen); }

Soms willen we alle exemplaren van een bepaald element verwijderen. We kunnen dit doen door gebruik te maken van ArrayUtils # removeAllOccurences:

public int [] removeAllOccurrencesOfAGivenElement (int [] array, int element) {return ArrayUtils.removeAllOccurences (array, element); }

6. Conclusie

In dit artikel hebben we gekeken naar de verschillende manieren om een ​​element / elementen uit een array te verwijderen met behulp van de Apache Commons Lang-bibliotheek.

Bekijk de broncode voor deze tutorial en de relevante unit-tests die beschikbaar zijn op GitHub voor meer informatie over de edge-cases.