Matrix omzetten naar lijst in Java
Hoe converteer ik een array naar een lijst in Java?
Ik gebruikte de Arrays.asList()
maar het gedrag (en signatuur) is op de een of andere manier veranderd van Java SE 1.4.2 (docs nu in archief) naar 8 en de meeste snippets die ik op het web vond gebruiken het 1.4.2 gedrag.
Bijvoorbeeld:
int[] spam = new int[] { 1, 2, 3 };
Arrays.asList(spam)
- op 1.4.2 geeft een lijst terug met de elementen 1, 2, 3 *op 1.5.0+ geeft een lijst met de array spam
In veel gevallen zou dit gemakkelijk te detecteren moeten zijn, maar soms kan het ongemerkt gebeuren:
Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);
948
3
In jouw voorbeeld is dat omdat je geen List van een primitief type kunt hebben. Met andere woorden,
List
is niet mogelijk.Je kunt echter wel een
List
hebben door gebruik te maken van de klasseInteger
die de primitieveint
omhult. Converteer je array naar eenList
met deArrays.asList
utility methode.Zie deze code live op IdeOne.com.
Het probleem is dat varargs geïntroduceerd zijn in Java5 en helaas,
Arrays.asList()
is ook overloaded met een vararg versie. DusArrays.asList(spam)
wordt door de Java5 compiler opgevat als een vararg parameter van int arrays.Dit probleem wordt in meer detail uitgelegd in Effective Java 2nd Ed., Chapter 7, Item 42.
moet je in een matrix gieten