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.