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.