Konverzia medzi poľom a zoznamom v Jave

1. Prehľad

Tento rýchly článok ukáže, ako na to prevádzať medzi poľom a zoznamom pomocou základných knižníc Java, zbierok Guava alebo Apache Commons.

Tento článok je súčasťou série „Java - Späť na základné“ tu na Baeldungu.

2. Konvertovať Zoznam do poľa

2.1. Používanie obyčajnej Javy

Začnime konverziou z Zoznam do poľa pomocou obyčajnej Javy:

@Test public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect () {List sourceList = Arrays.asList (0, 1, 2, 3, 4, 5); Celé číslo [] targetArray = sourceList.toArray (nové celé číslo [0]); }

Poznač si to toArray (nové T [0]) je uprednostňovaným spôsobom použitia metódy pred toArray (nové T [veľkosť]). Ako dokazuje Aleksey Shipilëv vo svojom blogovom príspevku, zdá sa byť rýchlejší, bezpečnejší a čistejší.

2.2. Pomocou Guava

Poďme teraz použiť Guava API pre rovnakú konverziu:

@Test public void givenUsingGuava_whenListConvertedToArray_thenCorrect () {List sourceList = Lists.newArrayList (0, 1, 2, 3, 4, 5); int [] targetArray = Ints.toArray (sourceList); }

3. Konvertujte pole na Zoznam

3.1. Používanie obyčajnej Javy

Začnime s jednoduchým riešením Java na prevod poľa na a Zoznam:

@Test public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Zoznam targetList = Arrays.asList (sourceArray); }

Upozorňujeme, že toto je zoznam pevnej veľkosti, ktorý bude naďalej chránený poľom. Ak chcete štandard ArrayList môžete jednoducho vytvoriť inštanciu takto:

Zoznam targetList = nový ArrayList (Arrays.asList (sourceArray));

3.2. Pomocou Guava

Poďme teraz použiť Guava API pre rovnakú konverziu:

@Test public void givenUsingGuava_whenArrayConvertedToList_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Zoznam targetList = Lists.newArrayList (sourceArray); } 

3.3. Používanie zbierok Commons

A nakoniec použijeme zbierky Apache Commons - CollectionUtils.addAll API na vyplnenie prvkov poľa do prázdneho zoznamu:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Zoznam targetList = nový ArrayList (6); CollectionUtils.addAll (targetList, sourceArray); }

4. Záver

Implementácia všetkých týchto príkladov a útržkov kódu nájdete na GitHub - toto je projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť tak, ako je.