Yeni başlayanların çoğu, Arrays.asList() yöntemi kavramını ArrayList veri yapısıyla karıştırır. Benzer görünseler ve ses çıkarsalar da, uygulama söz konusu olduğunda bu ikisi tamamen farklıdır. Bu yazıda, Arrays.asList() yönteminin temel kullanımını ele alacağız ve bununla ilgili bazı yaygın kafa karışıklıklarını ortadan kaldıracağız.
Arrays.asList() neden kullanılıyor?
Listeye dönüştürmeniz gereken bir Diziniz varsa, java.util.Arrays bu amaca hizmet etmek için bir sarmalayıcı Arrays.asList() sağlar. Basit bir ifadeyle, bu yöntem bir diziyi parametre olarak alır ve bir liste döndürür. Java platformu API'sinin büyük bölümleri, koleksiyonlar çerçevesi tanıtılmadan önce geliştirildi. Bu nedenle, bazen geleneksel diziler ile daha modern koleksiyonlar arasında geçiş yapmanız gerekebilir. Bu işlev, Koleksiyonlar ve Dizi tabanlı API'ler arasında bir bağlantı görevi görür.
Örnek
Aşağıdaki örneğe bir göz atın:
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
public class ArraysAsListDemo {
public static void main(String[] args) {
String[] teamMembers = {"Amanda", "Loren", "Keith"};
// using aslist() method
List teamList = Arrays.asList(teamMembers);
System.out.println("List : " + teamList);
HashSet teamHashSet = new HashSet<>(Arrays.asList(teamMembers));
System.out.println("HashSet : " + teamHashSet);
}
}
Çıktı:
Liste : [Amanda, Loren, Keith] HashSet : [Keith, Loren, Amanda] // HashSet düzeni sağlamaz
Arrays.asList() ve ArrayList nasıl farklıdır?
Bir dizide Arrays.asList() yöntemini çağırdığınızda , döndürülen nesne bir ArrayList ( Liste arayüzünün yeniden boyutlandırılabilir bir dizi uygulaması ) değildir . Alttaki diziye erişen get() ve set() yöntemlerine sahip bir görüntüleme nesnesidir . İlişkili yineleyicinin add() veya remove() gibi dizinin boyutunu değiştirecek tüm yöntemler bir UnsupportedOperationException fırlatır . Java programının başarılı bir şekilde derlenmesinin ancak bir Çalışma Zamanı İstisnası vermesinin nedeni, görünüşe göre, bir "Liste" sonucunun döndürülmesidir.Diziler.asList() . Tüm ekleme/çıkarma işlemlerine izin verildiğinde. Ancak, temel alınan veri yapısı yeniden boyutlandırılamayan bir "dizi" olduğundan , çalışma zamanında bir istisna atılır. İşte nasıl göründüğünü gösteren bir pasaj:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
public static void main(String[] args) {
Integer[] diceRoll = new Integer[6];
//using aslist() method
List diceRollList = Arrays.asList(diceRoll);
System.out.println(diceRollList);
// using getters and setters to randomly access the list
diceRollList.set(5, 6);
diceRollList.set(0, 1);
System.out.println(diceRollList.get(5));
System.out.println(diceRollList.get(1));
System.out.println(diceRollList);
diceRollList.add(7); // Add a new Integer to the list
}
}
Çıktı:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] Java.util.AbstractList.add(AbstractList. java:148) java.util.AbstractList.add(AbstractList.java:108) adresinde ArraysAsListDemo.main(ArraysAsListDemo.java:20) konumunda
asList() yöntemini kullanma örnekleri
Java SE 5.0'dan itibaren, asList() yönteminin değişken sayıda bağımsız değişkene sahip olduğu bildirildi. Bir diziyi iletmek yerine, tek tek öğeleri de iletebilirsiniz. Örneğin:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
public static void main(String[] args) {
List seasons = Arrays.asList("winter", "summer", "spring", "fall");
List odds = Arrays.asList(1, 3, 5, 7, 9);
System.out.println(seasons);
System.out.println(odds);
}
}
Çıktı:
[kış, yaz, ilkbahar, sonbahar] [1, 3, 5, 7, 9]
GO TO FULL VERSION