Fjerne et element fra en matrise i Java

1. Oversikt

I denne raske opplæringen vil vi lære om de forskjellige måtene vi kan fjerne et element fra en matrise i Java ved hjelp av Apache Commons Lang-biblioteket.

2. Maven

La oss legge til commons-lang3 avhengighet til prosjektet vårt pom.xml fil:

 org.apache.commons commons-lang3 3.9 

3. Fjerne et element

Før vi begynner, la oss se på hva som skjer når vi fjerner et element fra en matrise uten å bruke ArrayUtils klasse fra Apache Commons Lang-biblioteket.

Gitt matrisen nedenfor, la oss fjerne et element på indeks 2:

En enkel måte å gjøre dette på ville være å erstatte verdien som er lagret på indeks 2 med verdien lagret på indeks 3 til vi når slutten av matrisen:

Legg merke til at ved å fjerne elementet på ovennevnte måte, størrelsen på matrisen vil forbli den samme og verdien som ble lagret ved den siste indeksen, ville være tom. Siden arrays har en fast minnestørrelse tildelt under initialiseringHvis du fjerner et element, justeres ikke størrelsen på matrisen.

La oss nå se på matrixrepresentasjonen når vi fjerner et element ved hjelp av fjerne metode fra ArrayUtils klasse fra Apache Commons Lang:

Som vi kan se, justeres matrisestørrelsen her til 5 etter at elementet er fjernet. De fjerne metoden oppretter en helt ny matrise og kopierer alle verdiene bortsett fra at verdien blir fjernet.

De ArrayUtils klasse gir to måter å fjerne et element fra en matrise. La oss se på disse neste.

4. Bruke indeks som inngang

Den første måten vi kan fjerne et element på er med indeksen med ArrayUtils # remove:

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

En annen variant er Fjern alle metode, som vi kan bruke til å fjerne flere elementer fra en matrise, gitt deres indekser:

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

5. Bruke Element som Input

Eller la oss si at vi ikke kjenner indeksen på hva vi fjerner. I så fall kan vi tilby elementet som skal fjernes ved hjelp av ArrayUtils # removeElement:

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

Her er en annen nyttig variant av denne metoden ArrayUtils # removeElements, i tilfelle det er mer enn ett element som vi vil fjerne:

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

Noen ganger vil vi fjerne alle forekomster av et gitt element. Vi kan gjøre det ved å bruke ArrayUtils # removeAllOccurences:

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

6. Konklusjon

I denne artikkelen så vi på de forskjellige måtene å fjerne et element / elementer fra en matrise ved hjelp av Apache Commons Lang-biblioteket.

For å lære mer om edge cases, sjekk kildekoden for denne veiledningen og de relevante enhetstestene som er tilgjengelige på GitHub.


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