Uklanjanje elementa iz niza u Javi

1. Pregled

U ovom brzom vodiču naučit ćemo o raznim načinima na koje to možemo ukloniti element iz niza u Javi koristeći knjižnicu Apache Commons Lang.

2. Maven

Dodajmo i commons-lang3 ovisnost o našem projektu pom.xml datoteka:

 org.apache.commons commons-lang3 3.9 

3. Uklanjanje elementa

Prije nego što započnemo, pogledajmo što se događa kada uklonimo element iz niza bez upotrebe ArrayUtils razreda iz biblioteke Apache Commons Lang.

S obzirom na donji niz, uklonimo element na indeks 2:

Jednostavan način za to bio bi zamjena vrijednosti pohranjene u indeks 2 s vrijednošću pohranjenom na indeks 3 dok ne dođemo do kraja niza:

Primijetite da uklanjanjem elementa na gore navedeni način, veličina niza ostala bi ista a vrijednost pohranjena kod zadnjeg indeksa bila bi prazna. Budući da nizovi imaju a fiksna veličina memorije dodijeljena tijekom inicijalizacije, uklanjanjem elementa ne podešava se veličina polja.

Pogledajmo sada prikaz niza prilikom uklanjanja elementa pomoću ukloniti metoda iz ArrayUtils razred iz Apache Commons Lang:

Kao što vidimo, veličina polja ovdje se prilagođava na 5 nakon uklanjanja elementa. The ukloniti metoda stvara potpuno novi niz i kopira sve vrijednosti, osim vrijednosti koja se uklanja.

The ArrayUtils klasa pruža dva načina uklanjanja elementa iz niza. Pogledajmo sljedeće.

4. Korištenje indeksa kao ulaza

Prvi način na koji možemo ukloniti element je njegov indeks sa ArrayUtils # ukloni:

javni int [] removeAnElementWithAGivenIndex (int [] niz, int indeks) {return ArrayUtils.remove (niz, indeks); }

Druga varijacija je ukloniti sve metodu kojom možemo ukloniti više elemenata iz niza, s obzirom na njihove indekse:

javni int [] removeAllElementsWithGivenIndices (int [] niz, int ... indeksi) {return ArrayUtils.removeAll (niz, indeksi); }

5. Korištenje elementa kao ulaza

Ili recimo da ne znamo indeks onoga što uklanjamo. U tom slučaju možemo pružiti element za uklanjanje pomoću ArrayUtils # removeElement:

javni int [] removeFirstOccurrenceOfGivenElement (int [] niz, int element) {return ArrayUtils.removeElement (niz, element); }

Evo još jedne korisne varijacije ove metode ArrayUtils # removeElements, u slučaju da postoji više od jednog elementa koji bismo željeli ukloniti:

javni int [] removeAllGivenElements (int [] niz, int ... elementi) {return ArrayUtils.removeElements (niz, elementi); }

Ponekad bismo željeli ukloniti sve pojave određenog elementa. To možemo učiniti pomoću ArrayUtils # removeAllOccurences:

javni int [] removeAllOccurrencesOfAGivenElement (int [] niz, int element) {return ArrayUtils.removeAllOccurences (niz, element); }

6. Zaključak

U ovom smo članku pogledali različite načine uklanjanja elementa / elemenata iz niza pomoću biblioteke Apache Commons Lang.

Da biste saznali više o rubnim slučajevima, provjerite izvorni kod ovog vodiča i relevantne jedinične testove dostupne na GitHub-u.