Java'da, Sıralamak Ve Liste En önemli iki veri yapısıdır. Bu bölümde öğreneceğiz Java Dizisini Listeye nasıl dönüştürebilirim? Biz de yarattık Java programları Diziyi Listeye dönüştüren farklı Java yöntemleri kullanarak.
Java'da Diziyi Listeye Dönüştürme
Java dizisi aynı veri tipindeki birden fazla değerin koleksiyonudur. Bir dizi, nesneleri ve temel türleri içerebilir. Dizinin tanımına bağlıdır. Bir dizi tanımı ilkel tipteyse, dizinin değerleri bulaşıcı bellek konumunda saklanır. Bir dizi nesne öğeleri içeriyorsa, yığın bölümünde depolanan öğeler.
İçinde Java , A Liste Java Koleksiyonları çerçevesine ait bir arayüzdür. Nesne formundaki elemanları sıralı bir şekilde saklar ve ekleme sırasını korur. Yinelenen değerleri saklamamızı sağlar. Sınıflar Dizi Listesi , Bağlantılı liste , Vektör Ve Yığın Liste arayüzünü uygular.
Java, Diziyi Listeye dönüştürmek için beş yöntem sağlar:
- Yerel Yöntem
- Arrays.asList() Yöntemini Kullanma
- Collections.addAll() Yöntemini Kullanma
- Java 8 Akış API'sini kullanma
- Guava Lists.newArrayList() Yöntemini Kullanma
Yerel Yöntem
Java Dizisini Listeye dönüştürmenin en basit yöntemidir. Bu yöntemde öncelikle boş bir List oluşturup dizinin tüm elemanlarını List içerisine ekliyoruz. Bir örnek görelim.
ArrayToListExample1.java
roma rakamları 1 100
import java.util.*; public class ArrayToListExample1 { public static void main(String args[]) { //creating an array String array[] = { 'Golf', 'Soccer', 'Baseball', 'Volleyball', 'Tennis', 'Badminton', 'Rugby', 'Archery', 'Skiing'}; //prints the array before conversion System.out.println('Array before conversion: '+ Arrays.toString(array)); //calling the generic function that converts Array into List List list = ArrayToListConversion(array); //print the List System.out.println('Array as List: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T array[]) { //creating the constructor of the List class List list = new ArrayList(); //using for-each loop to iterate over the array for (T t : array) { //adding each element to the List list.add(t); } //returns the list converted into Array return list; } }
Çıktı:
Arrays.asList() Yöntemini Kullanma
Java.util paketine ait Java Arrays sınıfının metodudur. AsList() yöntemini Collection.toArray() yöntemiyle birlikte kullandığımızda dizi tabanlı ve koleksiyon tabanlı API'ler arasında köprü görevi görür.
Sözdizimi:
public static List asList(T... a)
Yöntem, bir diziyi listenin yedekleneceği parametre olarak ayrıştırır. Belirtilen dizinin serileştirilebilir sabit boyutlu liste görünümünü döndürür. Bir örnek görelim.
ArrayToListExample2.java
Java'da while ve do while döngüsü
import java.util.*; public class ArrayToListExample2 { public static void main(String args[]) { //creating an array to be converted String arr[] = { 'Aston Martin', 'Bugatti', 'Bentley', 'Alfa Romeo', 'Buick', 'Acura', 'Audi', 'BMW', 'Buick' }; //prints array before conversion System.out.println('Array before conversion: '+ Arrays.toString(arr)); //calling generic method that converts Array into List List list = ArrayToListConversion(arr); //prints the List System.out.println('Array after conversion: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //invoking the asList() method and passing the array to be converted List list = Arrays.asList(arr); //returns the list return list; } }
Çıktı:
Collections.addAll() Yöntemini Kullanma
Bu, yöntemin Java Koleksiyonları sınıf. Java.util paketine aittir. Sınıf adlı bir yöntem sağlar hepsini ekle() . Array'i Listeye dönüştürmek için bu yöntemi kullanabiliriz. Tüm öğeleri belirtilen koleksiyona ekler. Öğeleri tek tek veya dizi biçiminde belirtebiliriz. Aynı şekilde çalışır c.addAll(Arrays.asList(elements)). Başka bir uygulamaya göre daha hızlı bir uygulamadır.
Sözdizimi:
public static boolean addAll(Collection c, T... elements)
İki parametreyi ayrıştırır:
Geri dönüyor doğru çağrı sonucunda koleksiyon değiştiyse. Aşağıdaki istisnaları atar:
- Eğer c parametresi ekleme işlemini desteklemiyorsa, şunu atar: DesteklenmeyenOperationException .
- Belirtilen dizi öğeleri bir veya daha fazla boş değer içeriyorsa ve c, boş öğelere izin vermiyorsa, şunu atar: NullPointerException .
- Herhangi bir dizi öğesi c parametresine eklenmesini engelliyorsa atar Yasadışı İşaretçi İstisnası .
Bir örnek görelim.
ArrayToListExample3.java
import java.util.*; public class ArrayToListExample3 { public static void main(String args[]) { //creating an Array to be converted String arr[] = { 'San Jose', 'Dallas', 'Chicago','San Antonio', 'Los Angeles', 'Portland', 'Tucson' }; //prints the Array System.out.println('Array before conversion: '+ Arrays.toString(arr)); //method calling List list = ArrayToListConversion(arr); //print the List System.out.println('Array after conversion: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creating the constructor of thr List class List list = new ArrayList(); //the method adds Array to the List Collections.addAll(list, arr); //returns the list return list; } }
Çıktı:
c++ dizesinde bul
Java 8 Akış API'sini kullanma
Java 8, Akış API'sini sağlar Nesne koleksiyonlarını işlemek için. İstenilen sonucu elde etmek için ardı ardına sıralanabilen bir yöntemler dizisidir. Orijinal veri yapısını değiştirmediğini unutmayın. İşlem hattı yöntemlerine dayalı çıktı sağlar. Stream'e çeşitli yollarla ulaşabiliriz ancak aşağıdaki programda şunu kullandık: Arrays.stream(Nesne[]) akışa ulaşmak için.
Collectors.toList() Yöntem: Yöntem, giriş öğelerini bir karşılaşma yönteminde yeni oluşturulan bir Listeye toplayan bir Toplayıcı döndürür.
Sözdizimi:
public static Collector<t,?,list> toList() </t,?,list>
Burada T belirttiğimiz elemanın türüdür. Yöntem tür, değiştirilebilirlik, iş parçacığı güvenliği ve serileştirilebilirlik konusunda garanti vermez.
Stream API'yi bir Java programında kullanalım ve bir diziyi Listeye dönüştürelim.
ArrayToListExample4.java
import java.util.*; import java.util.stream.Collectors; public class ArrayToListExample4 { //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creates a list from the specified Array and returns the List return Arrays.stream(arr).collect(Collectors.toList()); } public static void main(String args[]) { //creating an array to be converted into List String arr[] = { 'Python', 'HTM', 'Java', 'C', 'C++', 'JavaScript', 'Ruby', 'Swift', 'PHP' }; //prints the Array before conversion System.out.println('Array: '+ Arrays.toString(arr)); //calling the method created above and storing the elements into the List object List list = ArrayToListConversion(arr); //prints the List System.out.println('List: ' + list); } }
Çıktı:
Guava Lists.newArrayList()'ı kullanma
Bu, yöntemin Listeler ait olduğu sınıf com.google.common.collect paket. Sınıf bir yöntem sağlar yeniArrayList() belirtilen dizinin öğelerine sahip değiştirilebilir boş ArrayList örneği oluşturur.
karakter tostring java
Sözdizimi:
public static ArrayList newArrayList(E... elements)
Not: newArrayList() yöntemi Java 6 ve önceki sürümlerde mevcuttur. Daha sonraki sürümlerde kullanımdan kaldırılmıştır. Yukarıdaki yöntem yerine doğrudan ArrayList yapıcısını kullanıyoruz.
ArrayToListExample5.java
import static com.google.common.collect.Lists.*; import java.util.*; public class ArrayToListExample5 { public static void main(String args[]) { //creating an Array to be converted into a List String arr[] = { 'Mango', 'Banana', 'Grapes', 'Apple', 'Plum', 'Blackberry', 'Papaya', 'Orange' }; //prints the Array before conversion System.out.println('Array: '+ Arrays.toString(arr)); //convert the Array to List List list = ArrayToListConversion(arr); //prints the List System.out.println('List: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creates a List from the specified Array return Lists.newArrayList(arr); } }
Çıktı: