Spracovanie poľa s Apache Commons Lang 3

1. Prehľad

Knižnica Apache Commons Lang 3 poskytuje podporu pre manipuláciu s hlavnými triedami rozhraní Java API. Táto podpora obsahuje metódy na manipuláciu s reťazcami, číslami, dátumami, súbežnosťou, zrkadlením objektov a ďalšie.

V tomto rýchlom návode sa zameriame na veľmi užitočné spracovanie poľa ArrayUtils úžitková trieda.

2. Závislosť od Maven

Ak chcete používať knižnicu Commons Lang 3, jednoducho ju vytiahnite z centrálneho úložiska Maven pomocou nasledujúcej závislosti:

 org.apache.commons commons-lang3 3.5 

Najnovšiu verziu tejto knižnice nájdete tu.

3. ArrayUtils

The ArrayUtils trieda poskytuje užitočné metódy pre prácu s poľami. Tieto metódy sa snažia ladne zaobchádzať so vstupom tak, že zabránia vyvolaniu výnimky, keď a nulový hodnota je odovzdaná.

Táto časť ilustruje niektoré metódy definované v dokumente ArrayUtils trieda. Upozorňujeme, že všetky tieto metódy môžu pracovať s akýmkoľvek typom prvku.

Pre väčšie pohodlie sú ich preťažené príchute definované aj pre prácu s poliami obsahujúcimi primitívne typy.

4. pridať a pridať všetko

The pridať metóda skopíruje dané pole a vloží daný prvok na danom mieste do nového poľa. Ak pozícia nie je zadaná, nový prvok sa pridá na koniec poľa.

Nasledujúci fragment kódu vloží číslo nula na prvú pozíciu znaku oldArray pole a overí výsledok:

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

Ak pozícia nie je zadaná, ďalší prvok sa pridá na konci oldArray:

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

The pridať všetko metóda pridá všetky prvky na koniec daného poľa. Nasledujúci fragment ilustruje túto metódu a potvrdzuje výsledok:

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

5. odstrániť a odobrať všetky

The odstrániť metóda odstráni prvok v zadanej polohe z daného poľa. Všetky nasledujúce prvky sú posunuté doľava. Toto platí pre všetky operácie odstraňovania.

Táto metóda vráti namiesto pôvodného zmeny nové pole:

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

The odobrať všetky metóda odstráni všetky prvky na zadaných pozíciách z daného poľa:

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

6. removeElement a removeElements

The removeElement metóda odstráni prvý výskyt zadaného prvku z daného poľa.

Namiesto zrušenia výnimky sa operácia odstránenia ignoruje, ak v danom poli taký prvok neexistuje:

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

The removeElements metóda odstráni prvé výskyty zadaných prvkov z daného poľa.

Namiesto zrušenia výnimky sa operácia odstránenia ignoruje, ak v danom poli zadaný prvok neexistuje:

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

7. The removeAllOccurences API

The removeAllOccurences metóda odstráni všetky výskyty zadaného prvku z daného poľa.

Namiesto zrušenia výnimky sa operácia odstránenia ignoruje, ak takýto prvok v danom poli neexistuje:

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

8. The obsahuje API

The obsahuje metóda skontroluje, či v danom poli existuje hodnota. Tu je príklad kódu vrátane overenia výsledku:

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

9. The obrátiť API

The obrátiť metóda obráti poradie prvkov v stanovenom rozsahu daného poľa. Táto metóda namiesto vrátenia nového vykoná zmeny v odovzdanom poli.

Pozrime sa na rýchlo:

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

Ak rozsah nie je zadaný, poradie všetkých prvkov sa obráti:

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

10. The posun API

The posun metóda posúva sériu prvkov v danom poli o niekoľko pozícií. Táto metóda namiesto vrátenia nového vykoná zmeny v odovzdanom poli.

Nasledujúci fragment kódu posúva všetky prvky medzi prvkami v indexe 1 (vrátane) a indexe 4 (výhradne) o jednu pozíciu doprava a potvrdzuje výsledok:

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

Ak hranice rozsahu nie sú zadané, posunú sa všetky prvky poľa:

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

11. The podoblasť API

The podoblasť metóda vytvorí nové pole obsahujúce prvky v stanovenom rozsahu daného poľa. Nasleduje príklad tvrdenia o výsledku:

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

Všimnite si, že keď je vložený index väčší ako dĺžka poľa, je degradovaný na dĺžku poľa a nie preto, aby metóda vyvolala výnimku. Podobne, ak sa odovzdá záporný index, povýši sa na nulu.

12. The vymeniť API

The vymeniť metóda zamení sériu prvkov na zadaných pozíciách v danom poli.

Nasledujúci fragment kódu zamení dve skupiny prvkov počnúc indexmi 0 a 3, pričom každá skupina obsahuje dva prvky:

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

Ak nie je zadaný žiadny argument dĺžky, zamení sa iba jeden prvok na každej pozícii:

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

13. Záver

Tento výukový program predstavuje nástroj na spracovanie základného poľa v Apache Commons Lang 3 - ArrayUtils.

Implementáciu všetkých vyššie uvedených príkladov a útržkov kódu nájdete ako vždy v projekte GitHub.


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