Array Processing med Apache Commons Lang 3

1. Oversigt

Apache Commons Lang 3-biblioteket understøtter manipulation af kerneklasser i Java API'erne. Denne support inkluderer metoder til håndtering af strenge, tal, datoer, samtidighed, objektrefleksion og mere.

I denne hurtige vejledning fokuserer vi på array-behandling med det meget nyttige ArrayUtils utility klasse.

2. Maven-afhængighed

For at bruge Commons Lang 3-biblioteket skal du bare trække det fra det centrale Maven-arkiv ved hjælp af følgende afhængighed:

 org.apache.commons commons-lang3 3.5 

Du kan finde den nyeste version af dette bibliotek her.

3. ArrayUtils

Det ArrayUtils klasse giver hjælpemetoder til at arbejde med arrays. Disse metoder forsøger at håndtere input yndefuldt ved at forhindre, at en undtagelse kastes, når en nul værdi overføres.

Dette afsnit illustrerer nogle metoder defineret i ArrayUtils klasse. Bemærk, at alle disse metoder kan arbejde med alle elementtyper.

For nemheds skyld er deres overbelastede smag også defineret til håndtering af arrays indeholdende primitive typer.

4. tilføje og tilføjAlle

Det tilføje metode kopierer et givet array og indsætter et givet element i en given position i det nye array. Hvis positionen ikke er specificeret, tilføjes det nye element i slutningen af ​​arrayet.

Det følgende kodefragment indsætter tallet nul i den første position af oldArray array og verificerer resultatet:

int [] oldArray = {2, 3, 4, 5}; int [] newArray = ArrayUtils.add (oldArray, 0, 1); int [] expectArray = {1, 2, 3, 4, 5}; assertArrayEquals (forventetArray, newArray);

Hvis positionen ikke er specificeret, tilføjes det ekstra element i slutningen af oldArray:

int [] oldArray = {2, 3, 4, 5}; int [] newArray = ArrayUtils.add (oldArray, 1); int [] expectArray = {2, 3, 4, 5, 1}; assertArrayEquals (forventetArray, newArray);

Det tilføjAlle metoden tilføjer alle elementer i slutningen af ​​et givet array. Følgende fragment illustrerer denne metode og bekræfter resultatet:

int [] oldArray = {0, 1, 2}; int [] newArray = ArrayUtils.addAll (oldArray, 3, 4, 5); int [] expectArray = {0, 1, 2, 3, 4, 5}; assertArrayEquals (forventetArray, newArray);

5. fjerne og Fjern alt

Det fjerne metode fjerner et element i en bestemt position fra et givet array. Alle efterfølgende elementer flyttes til venstre. Bemærk, at dette gælder for alle fjernelseshandlinger.

Denne metode returnerer et nyt array i stedet for at foretage ændringer i det oprindelige:

int [] oldArray = {1, 2, 3, 4, 5}; int [] newArray = ArrayUtils.remove (oldArray, 1); int [] expectArray = {1, 3, 4, 5}; assertArrayEquals (forventetArray, newArray);

Det Fjern alt metode fjerner alle elementer på specificerede positioner fra et givet array:

int [] oldArray = {1, 2, 3, 4, 5}; int [] newArray = ArrayUtils.removeAll (oldArray, 1, 3); int [] expectArray = {1, 3, 5}; assertArrayEquals (forventetArray, newArray);

6. removeElement og removeElements

Det removeElement metode fjerner den første forekomst af et specificeret element fra et givet array.

I stedet for at kaste en undtagelse ignoreres fjernelsesoperationen, hvis et sådant element ikke findes i det givne array:

int [] oldArray = {1, 2, 3, 3, 4}; int [] newArray = ArrayUtils.removeElement (oldArray, 3); int [] expectArray = {1, 2, 3, 4}; assertArrayEquals (forventetArray, newArray);

Det removeElements metode fjerner de første forekomster af specificerede elementer fra et givet array.

I stedet for at kaste en undtagelse ignoreres fjernelsesoperationen, hvis et bestemt element ikke findes i det givne array:

int [] oldArray = {1, 2, 3, 3, 4}; int [] newArray = ArrayUtils.removeElements (oldArray, 2, 3, 5); int [] expectArray = {1, 3, 4}; assertArrayEquals (forventetArray, newArray);

7. Den removeAllOccurences API

Det removeAllOccurences metode fjerner alle forekomster af det angivne element fra det givne array.

I stedet for at kaste en undtagelse ignoreres fjernelsesoperationen, hvis et sådant element ikke findes i det givne array:

int [] oldArray = {1, 2, 2, 2, 3}; int [] newArray = ArrayUtils.remAllOccurences (oldArray, 2); int [] expectArray = {1, 3}; assertArrayEquals (forventetArray, newArray);

8. Den indeholder API

Det indeholder metode kontrollerer, om der findes en værdi i et givet array. Her er et kodeeksempel, herunder verifikation af resultatet:

int [] array = {1, 3, 5, 7, 9}; boolsk evenContained = ArrayUtils.contains (array, 2); boolsk oddContained = ArrayUtils.contains (array, 7); assertEquals (false, evenContained); assertEquals (true, oddContained);

9. Den baglæns API

Det baglæns metoden vender elementrækkefølgen inden for et specificeret interval for en given matrix. Denne metode foretager ændringer i det indleverede array i stedet for at returnere et nyt.

Lad os se på et hurtigt:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.reverse (originalArray, 1, 4); int [] expectArray = {1, 4, 3, 2, 5}; assertArrayEquals (forventetArray, originalArray);

Hvis et interval ikke er angivet, vendes rækkefølgen af ​​alle elementer:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.reverse (originalArray); int [] expectArray = {5, 4, 3, 2, 1}; assertArrayEquals (forventetArray, originalArray);

10. Den flytte API

Det flytte metode skifter en række elementer i et givet array et antal positioner. Denne metode foretager ændringer i det indleverede array i stedet for at returnere et nyt.

Følgende kodefragment skifter alle elementer mellem elementerne i indeks 1 (inklusive) og indeks 4 (eksklusivt) en position til højre og bekræfter resultatet:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.shift (originalArray, 1, 4, 1); int [] expectArray = {1, 4, 2, 3, 5}; assertArrayEquals (forventetArray, originalArray);

Hvis rækkevidden ikke er specificeret, forskydes alle elementerne i arrayet:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.shift (originalArray, 1); int [] expectArray = {5, 1, 2, 3, 4}; assertArrayEquals (forventetArray, originalArray);

11. Den subarray API

Det subarray metoden opretter en ny matrix, der indeholder elementer inden for et specificeret område af det givne array. Følgende er et eksempel på en påstand om resultatet:

int [] oldArray = {1, 2, 3, 4, 5}; int [] newArray = ArrayUtils.subarray (oldArray, 2, 7); int [] expectArray = {3, 4, 5}; assertArrayEquals (forventetArray, newArray);

Bemærk, at når det indleverede indeks er større end længden af ​​arrayet, degraderes det til array-længden i stedet for at metoden kaster en undtagelse. Tilsvarende fremmes det til nul, hvis et negativt indeks sendes ind.

12. Den bytte rundt API

Det bytte rundt metode bytter en række elementer på specificerede positioner i det givne array.

Følgende kodefragment bytter to grupper af elementer, der starter ved indekserne 0 og 3, hvor hver gruppe indeholder to elementer:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.swap (originalArray, 0, 3, 2); int [] expectArray = {4, 5, 3, 1, 2}; assertArrayEquals (forventetArray, originalArray);

Hvis der ikke overføres noget længdeargument, byttes kun et element på hver position:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.swap (originalArray, 0, 3); int [] expectArray = {4, 2, 3, 1, 5}; assertArrayEquals (forventetArray, originalArray);

13. Konklusion

Denne vejledning introducerer kernearray-behandlingsværktøjet i Apache Commons Lang 3 - ArrayUtils.

Som altid kan implementeringen af ​​alle eksempler og kodestykker, der er angivet ovenfor, findes i GitHub-projektet.


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