Java'da bir diziyi listeye nasıl dönüştürebilirim?
Arrays.asList()` kullandım ancak davranış (ve imza) bir şekilde Java SE 1.4.2'den (dokümanlar artık arşivde) 8'ye değişti ve web'de bulduğum parçacıkların çoğu 1.4.2 davranışını kullanıyor.
Örneğin:
int[] spam = new int[] { 1, 2, 3 };
Arrays.asList(spam)
Çoğu durumda tespit edilmesi kolay olmalıdır, ancak bazen fark edilmeyebilir:
Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);
Örneğinizde, bunun nedeni ilkel türde bir Listeye sahip olamamanızdır. Başka bir deyişle, List<int>
mümkün değildir.
Bununla birlikte, int
ilkelini saran Integer
sınıfını kullanarak bir List<Integer>
oluşturabilirsiniz. Dizinizi Arrays.asList
yardımcı program yöntemiyle bir List
haline dönüştürün.
Integer[] spam = new Integer[] { 1, 2, 3 };
List<Integer> list = Arrays.asList(spam);
Bunu görün IdeOne.com'da canlı kod çalıştırma.
Sorun şu ki, vararglar Java5'te tanıtıldı ve ne yazık ki Arrays.asList()
de bir vararg sürümü ile aşırı yüklendi. Yani Arrays.asList(spam)
Java5 derleyicisi tarafından int dizilerin vararg parametresi olarak anlaşılmaktadır.
Bu sorun Effective Java 2. Ed., Bölüm 7, Madde 42'de daha ayrıntılı olarak açıklanmıştır.