Konvertering mellem en matrix og en liste i Java

1. Oversigt

Denne hurtige artikel vil vise, hvordan man gør det konvertere mellem en matrix og en liste ved hjælp af centrale Java-biblioteker, Guava eller Apache Commons Collections.

Denne artikel er en del af "Java - Back to Basic" -serien her på Baeldung.

2. Konverter Liste til Array

2.1. Brug af almindelig Java

Lad os starte med konverteringen fra Liste til Array ved hjælp af almindelig Java:

@Test offentlig ugyldighed givenUsingCoreJava_whenListConvertedToArray_thenCorrect () {List sourceList = Arrays.asList (0, 1, 2, 3, 4, 5); Heltal [] targetArray = sourceList.toArray (nyt heltal [0]); }

Noter det toArray (ny T [0]) er den foretrukne måde at bruge metoden frem for toArray (ny T [størrelse]). Som Aleksey Shipilëv beviser i sit blogindlæg, virker det hurtigere, mere sikkert og renere.

2.2. Brug af Guava

Lad os nu bruge Guava API til den samme konvertering:

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

3. Konverter Array til Liste

3.1. Brug af almindelig Java

Lad os starte med den almindelige Java-løsning til konvertering af arrayet til en Liste:

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

Bemærk, at dette er en liste med fast størrelse, der stadig vil blive bakket op af arrayet. Hvis du vil have en standard ArrayList du kan simpelthen instantiere en som sådan:

Liste targetList = ny ArrayList (Arrays.asList (sourceArray));

3.2. Brug af Guava

Lad os nu bruge Guava API til den samme konvertering:

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

3.3. Brug af Commons-samlinger

Og endelig, lad os bruge Apache Commons Collections - CollectionUtils.addAll API til at udfylde elementerne i arrayet i en tom liste:

@Test offentlig ugyldighed givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect () {Integer [] sourceArray = {0, 1, 2, 3, 4, 5}; Liste targetList = ny ArrayList (6); CollectionUtils.addAll (targetList, sourceArray); }

4. Konklusion

Implementeringen af ​​alle disse eksempler og kodestykker kan findes på GitHub - dette er et Maven-baseret projekt, så det skal være let at importere og køre som det er.