Obrada niza s Apache Commons Lang 3

1. Pregled

Biblioteka Apache Commons Lang 3 pruža podršku za manipulaciju osnovnim klasama Java API-ja. Ova podrška uključuje metode za rukovanje nizovima, brojevima, datumima, istodobnošću, odrazom objekta i još mnogo toga.

U ovom brzom vodiču usredotočit ćemo se na obradu polja s vrlo korisnim ArrayUtils klasa korisnosti.

2. Ovisnost Mavena

Da biste koristili biblioteku Commons Lang 3, samo je izvucite iz središnjeg spremišta Maven koristeći sljedeću ovisnost:

 org.apache.commons commons-lang3 3.5 

Najnoviju verziju ove knjižnice možete pronaći ovdje.

3. ArrayUtils

The ArrayUtils klasa pruža korisne metode za rad s nizovima. Ove metode pokušavaju graciozno obraditi unos sprečavajući izbacivanje iznimke kada a null vrijednost se predaje.

Ovaj odjeljak ilustrira neke metode definirane u ArrayUtils razred. Imajte na umu da sve ove metode mogu raditi s bilo kojom vrstom elementa.

Radi praktičnosti, njihovi preopterećeni okusi također su definirani za rukovanje nizima koji sadrže primitivne tipove.

4. dodati i Dodaj Sve

The dodati metoda kopira zadani niz i ubacuje zadani element na zadano mjesto u novi niz. Ako pozicija nije navedena, novi element dodaje se na kraju polja.

Sljedeći fragment koda ubacuje broj nula na prvo mjesto oldArray niz i provjerava rezultat:

int [] oldArray = {2, 3, 4, 5}; int [] newArray = ArrayUtils.add (stariArray, 0, 1); int [] očekuje seArray = {1, 2, 3, 4, 5}; assertArrayEquals (očekivaniArray, noviArray);

Ako položaj nije naveden, dodatni element dodaje se na kraju oldArray:

int [] oldArray = {2, 3, 4, 5}; int [] newArray = ArrayUtils.add (stariArray, 1); int [] očekuje seArray = {2, 3, 4, 5, 1}; assertArrayEquals (očekivaniArray, noviArray);

The Dodaj Sve metoda dodaje sve elemente na kraju datog niza. Sljedeći fragment ilustrira ovu metodu i potvrđuje rezultat:

int [] oldArray = {0, 1, 2}; int [] newArray = ArrayUtils.addAll (stariArray, 3, 4, 5); int [] očekuje seArray = {0, 1, 2, 3, 4, 5}; assertArrayEquals (očekivaniArray, noviArray);

5. ukloniti i ukloniti sve

The ukloniti metoda uklanja element na navedenom položaju iz datog niza. Svi sljedeći elementi pomaknuti su ulijevo. Imajte na umu da to vrijedi za sve postupke uklanjanja.

Ova metoda vraća novi niz umjesto da vrši promjene u izvornom:

int [] oldArray = {1, 2, 3, 4, 5}; int [] newArray = ArrayUtils.remove (oldArray, 1); int [] očekuje seArray = {1, 3, 4, 5}; assertArrayEquals (očekivaniArray, noviArray);

The ukloniti sve metoda uklanja sve elemente na navedenim pozicijama iz datog niza:

int [] oldArray = {1, 2, 3, 4, 5}; int [] newArray = ArrayUtils.removeAll (stariArray, 1, 3); int [] očekuje seArray = {1, 3, 5}; assertArrayEquals (očekivaniArray, noviArray);

6. removeElement i removeElements

The removeElement metoda uklanja prvo pojavljivanje određenog elementa iz datog niza.

Umjesto bacanja iznimke, operacija uklanjanja se zanemaruje ako takav element ne postoji u danom nizu:

int [] oldArray = {1, 2, 3, 3, 4}; int [] newArray = ArrayUtils.removeElement (stariArray, 3); int [] očekuje seArray = {1, 2, 3, 4}; assertArrayEquals (očekivaniArray, noviArray);

The removeElements metoda uklanja prve pojave navedenih elemenata iz datog niza.

Umjesto bacanja iznimke, operacija uklanjanja se zanemaruje ako navedeni element ne postoji u danom nizu:

int [] oldArray = {1, 2, 3, 3, 4}; int [] newArray = ArrayUtils.removeElements (stariArray, 2, 3, 5); int [] očekuje seArray = {1, 3, 4}; assertArrayEquals (očekivaniArray, noviArray);

7. The removeAllOccurences API

The removeAllOccurences metoda uklanja sve pojave navedenog elementa iz datog niza.

Umjesto bacanja iznimke, operacija uklanjanja se zanemaruje ako takav element ne postoji u danom nizu:

int [] oldArray = {1, 2, 2, 2, 3}; int [] newArray = ArrayUtils.removeAllOccurences (stariArray, 2); int [] očekuje seArray = {1, 3}; assertArrayEquals (očekivaniArray, noviArray);

8. The sadrži API

The sadrži metoda provjerava postoji li vrijednost u danom nizu. Evo primjera koda, uključujući provjeru rezultata:

int [] niz = {1, 3, 5, 7, 9}; boolean evenContain = ArrayUtils.contains (niz, 2); boolean oddContain = ArrayUtils.contains (niz, 7); assertEquals (false, evenConinted); assertEquals (true, neparnoSadržano);

9. The obrnuti API

The obrnuti metoda obrće redoslijed elemenata unutar određenog raspona datog niza. Ova metoda unosi promjene u prosljeđeni niz umjesto da vraća novi.

Pogledajmo brzo:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.reverse (originalArray, 1, 4); int [] očekuje seArray = {1, 4, 3, 2, 5}; assertArrayEquals (očekivaniArray, originalArray);

Ako raspon nije naveden, redoslijed svih elemenata je obrnut:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.reverse (originalArray); int [] očekuje seArray = {5, 4, 3, 2, 1}; assertArrayEquals (očekivaniArray, originalArray);

10. The smjena API

The smjena metoda pomiče niz elemenata u danom nizu za nekoliko položaja. Ova metoda unosi promjene u prosljeđeni niz umjesto da vraća novi.

Sljedeći fragment koda pomiče sve elemente između elemenata na indeksu 1 (uključujući) i indeksu 4 (isključivo) jedan položaj udesno i potvrđuje rezultat:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.shift (originalArray, 1, 4, 1); int [] očekuje seArray = {1, 4, 2, 3, 5}; assertArrayEquals (očekivaniArray, originalArray);

Ako granice raspona nisu navedene, pomaknuti će se svi elementi niza:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.shift (originalArray, 1); int [] očekuje seArray = {5, 1, 2, 3, 4}; assertArrayEquals (očekivaniArray, originalArray);

11. The podniz API

The podniz metoda stvara novi niz koji sadrži elemente unutar određenog raspona datog niza. Slijedi primjer tvrdnje o rezultatu:

int [] oldArray = {1, 2, 3, 4, 5}; int [] newArray = ArrayUtils.subarray (stariArray, 2, 7); int [] očekuje seArray = {3, 4, 5}; assertArrayEquals (očekivaniArray, noviArray);

Primijetite da kada je proslijeđeni indeks veći od duljine niza, on se degradira na duljinu niza, umjesto da metoda izbaci iznimku. Slično tome, ako se preda negativni indeks, on se povisuje na nulu.

12. The zamijeniti API

The zamijeniti metoda zamjenjuje niz elemenata na određenim pozicijama u danom nizu.

Sljedeći fragment koda zamjenjuje dvije skupine elemenata počevši od indeksa 0 i 3, a svaka skupina sadrži dva elementa:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.swap (originalArray, 0, 3, 2); int [] očekuje seArray = {4, 5, 3, 1, 2}; assertArrayEquals (očekivaniArray, originalArray);

Ako se ne preda argument duljine, zamjenjuje se samo jedan element na svakom položaju:

int [] originalArray = {1, 2, 3, 4, 5}; ArrayUtils.swap (originalArray, 0, 3); int [] očekuje seArray = {4, 2, 3, 1, 5}; assertArrayEquals (očekivaniArray, originalArray);

13. Zaključak

Ovaj vodič predstavlja osnovni uslužni program za obradu polja u Apache Commons Lang 3 - ArrayUtils.

Kao i uvijek, implementacija svih gore danih primjera i isječaka koda može se naći u projektu GitHub.


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