Odstránenie prvku z poľa v Jave

1. Prehľad

V tomto rýchlom výučbe sa dozvieme o rôznych spôsoboch, akými môžeme odstrániť prvok z poľa v Jave pomocou knižnice Apache Commons Lang.

2. Maven

Pridajme commons-lang3 závislosť od nášho projektu pom.xml spis:

 org.apache.commons commons-lang3 3.9 

3. Odstránenie prvku

Než začneme, pozrime sa, čo sa stane, keď odstránime prvok z poľa bez použitia znaku ArrayUtils triedy z knižnice Apache Commons Lang.

Vzhľadom na nižšie uvedené pole odstránime prvok na index 2:

Jednoduchým spôsobom by bolo nahradiť hodnotu uloženú v index 2 s hodnotou uloženou v index 3 kým sa nedostaneme na koniec poľa:

Upozorňujeme, že odstránením prvku vyššie uvedeným spôsobom veľkosť poľa by zostala rovnaká a hodnota uložená pri poslednom indexe by bola prázdna. Pretože polia majú a pevná veľkosť pamäte pridelená počas inicializácie, odstránením prvku sa neprispôsobí veľkosť poľa.

Teraz sa pozrime na reprezentáciu poľa pri odstraňovaní prvku pomocou znaku odstrániť metóda z ArrayUtils trieda od Apache Commons Lang:

Ako vidíme, veľkosť poľa sa tu upraví na 5 po odstránení prvku. The odstrániť metóda vytvorí úplne nové pole a skopíruje všetky hodnoty okrem odstránenej hodnoty.

The ArrayUtils trieda poskytuje dva spôsoby odstránenia prvku z poľa. Pozrime sa na tieto ďalej.

4. Použitie indexu ako vstupu

Prvý spôsob, ako môžeme prvok odstrániť, je jeho index s ArrayUtils # odstrániť:

public int [] removeAnElementWithAGivenIndex (int [] pole, int index) {return ArrayUtils.remove (pole, index); }

Ďalšou variáciou je odobrať všetky metóda, ktorú môžeme použiť na odstránenie viacerých prvkov z poľa, vzhľadom na ich indexy:

public int [] removeAllElementsWithGivenIndices (int [] pole, int ... indexy) {return ArrayUtils.removeAll (pole, indexy); }

5. Použitie prvku ako vstupu

Alebo, povedzme, že nepoznáme index toho, čo odstraňujeme. V takom prípade môžeme poskytnúť prvok na odstránenie pomocou ArrayUtils # removeElement:

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

Tu uvádzame ďalšiu užitočnú variáciu tejto metódy ArrayUtils # removeElements, v prípade, že existuje viac ako jeden prvok, ktorý by sme chceli odstrániť:

public int [] removeAllGivenElements (int [] pole, int ... prvky) {return ArrayUtils.removeElements (pole, prvky); }

Niekedy by sme chceli odstrániť všetky výskyty daného prvku. Môžeme tak urobiť pomocou ArrayUtils # removeAllOccurences:

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

6. Záver

V tomto článku sme sa pozreli na rôzne spôsoby odstránenia prvku / prvkov z poľa pomocou knižnice Apache Commons Lang.

Ak sa chcete dozvedieť viac informácií o okrajových prípadoch, prečítajte si zdrojový kód tohto tutoriálu a príslušné testy jednotiek dostupné na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found