covert list array
Bu Eğitimde Java Listesinin Diziye ve Diğer Koleksiyonlara Nasıl Dönüştürüleceği Açıklanmaktadır. Listeyi Diziye, Dizeye, Kümeye ve tam tersine dönüştürmek için Örnekler içerir:
Daha önceki eğitimlerimizde liste koleksiyonunun ayrıntılarını tartıştık. Listede, yineleyicilerde vb. Çeşitli işlemleri gördük. Bir liste verildiğinde, bu listeyi dizeler, diziler, ArrayList, set vb. Gibi diğer koleksiyonlara veya veri yapılarına dönüştürebiliriz.
=> Özel Java Eğitimi Eğitim Dizisi İçin Burayı Ziyaret Edin.
Ne öğreneceksin:
Dönüşümleri Listele
Burada aslında yaptığımız şey, öğeleri bir koleksiyondan / yapıdan diğerine aktarmak ve bunu yaparken, aslında her koleksiyon veya veri yapısının kendi düzeni olduğu için öğelerin düzenini değiştiriyoruz.
Bu eğitimde, listeden diğer veri yapılarına ve tam tersi birkaç dönüşümü tartışacağız.
Listeyi Dizeye Dönüştür
Elemanların listesini kolayca dize gösterimine dönüştürebilirsiniz. Çoğunlukla bir dizi veya karakter listesini bir dizgi gösterimine dönüştürmek isteyeceksiniz.
Listeyi bir dizeye dönüştürmenin çeşitli yöntemleri vardır. En popüler olanlar aşağıda tartışılmaktadır.
# 1) toString Yöntemini Kullanma
Bu, listeyi dizeye dönüştürmenin en basit yöntemidir. Bu yöntemde, listeyi bir dize gösterimine dönüştüren bir listede 'toString' yöntemini kullanmanız yeterlidir.
Aşağıdaki program, toString yönteminin uygulanmasını göstermektedir.
import java.util.Arrays; import java.util.List; // Convert List of Characters to String in Java class Main { public static void main(String() args) { // create and initialize a character list List strList = Arrays.asList('H', 'e', 'l', 'l', 'o'); //convert list to string using toString method System.out.println('List converted to string representation:
' + strList.toString()); //replace comma between characters with blanks String string = strList.toString() .substring(1, 3 * strList.size() - 1) .replaceAll(', ', ''); // print string System.out.println('String representation by removing delimiters:
' + string); } }
Çıktı:
Bu programda, karakter listesini bir dizgi temsiline dönüştürdükten sonra, dizginin sınırlayıcı karakterleri kaldırarak ve onu tek bir kelime olarak temsil ederek daha da iyileştirildiğini görebilirsiniz.
# 2) Toplayıcı Sınıfını Kullanma
Java 8'den itibaren, listeyi bir dizeye dönüştürmek için 'Collectors' sınıfıyla akış API'larından yararlanabilirsiniz.
Misal:
import java.util.stream.Collectors; import java.util.Arrays; import java.util.List; class Main { public static void main(String() args) { // create and initialize list List strList = Arrays.asList('W', 'o', 'r', 'l','d'); // convert list to string using collect and joining() method String string= strList.stream().map(String::valueOf).collect(Collectors.joining()); // print string System.out.println('List converted to string:' + string); } }
Çıktı:
Yukarıdaki programda, akış API'lerinden yararlanıyoruz, değerleri eşleştiriyoruz ve ardından Collectors sınıfının joining () yöntemini kullanarak listeyi dizeye dönüştürüyoruz.
# 3) StringBuilder Sınıfını Kullanma
Listeyi dizeye dönüştürmenin üçüncü yöntemi, bir StringBuilder nesnesi kullanmaktır. Burada, listedeki her öğe bir döngü kullanılarak StringBuilder nesnesine eklenir. Daha sonra StringBuilder nesnesi, toString yöntemi kullanılarak dize gösterimine dönüştürülür.
Gösteri için aşağıdaki programı kontrol edin.
import java.util.Arrays; import java.util.List; class Main { public static void main(String() args) { // create and initialize the list List strList = Arrays.asList('I', 'n', 'd', 'i', 'a'); // object of stringBuilder StringBuilder sb = new StringBuilder(); // use append method to append list element to StringBuilder object for (Character ch : strList) { sb.append(ch); } // convert StringBuilder object to string using toString() String string = sb.toString(); // print string System.out.println('List converted to string: ' + string); } }
Çıktı:
Yukarıdaki program, listedeki öğelerin eklendiği StringBuilder nesnesinin kullanımını gösterir. Daha sonra nesne bir dizgeye dönüştürülür.
Listeyi Diziye Dönüştürme
Bir eleman listesi verildiğinde, bu listeyi bir diziye dönüştürmeniz gerekir. Bunu yapmak için aşağıda açıklanan yöntemlerden herhangi birini kullanabilirsiniz.
# 1) toArray Kullanımı
Bir listeyi diziye dönüştürmenin en basit yolu, listenin 'toArray' yöntemini kullanmaktır.
Aşağıdaki program, toArray yönteminin bu uygulamasını göstermektedir.
import java.util.*; public class Main { public static void main(String() args) { //create and initialize list List strList = new LinkedList(); strList.add('This'); strList.add('is'); strList.add('Java'); strList.add('Tutorial'); System.out.println('The given list:' + strList); //use toArray method to convert list to array String() strArray = strList.toArray(new String(0)); //print the array System.out.println('The Array from List: '); for (String val : strArray) System.out.print(val + ' '); } }
Çıktı:
Yukarıdaki programda, 'toArray' yöntemini kullanarak bir dizi listesini bir dizge dizisine dönüştürdük.
# 2) Java 8 Akışını Kullanma
Windows 7 için en iyi ücretsiz video dönüştürücü
Bir listeyi bir diziye dönüştürmenin sonraki yöntemi, Java 8'in akış API'lerini kullanmaktır. Bunda, liste önce akışa, sonra da stream () kullanılarak bir diziye dönüştürülür.
Aşağıdaki Java programı bu dönüşümü göstermektedir.
import java.util.*; class Main { public static void main (String()args) { //create and initialize the list List l_list = new LinkedList (); l_list.add ('Software'); l_list.add ('Testing'); l_list.add ('Help'); l_list.add ('Tutorial'); System.out.println('The given list:' + l_list); //Convert list to array using stream and toArray methods String() str_array = l_list.stream ().toArray (String()::new); //print the array System.out.println('The Array converted from list : '); for (String val:str_array) System.out.print (val + ' '); } }
Çıktı:
Yukarıdaki program Java 8'in akış API'lerini kullanır ve listeyi bir diziye dönüştürür. Dizi daha sonra her döngü için kullanılarak yazdırılır.
# 3) Get Yöntemini Kullanma
Bu, listeyi bir diziye dönüştürmenin başka bir yöntemidir. Bunda, listenin tek tek öğelerini almak için kullanılabilen listenin get () işlevini kullanıyoruz.
Listeyi get () yöntemini kullanarak bir diziye dönüştüren program aşağıda gösterilmiştir.
import java.io.*; import java.util.List; import java.util.LinkedList; class Main { public static void main (String() args) { List colors_list = new LinkedList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Yellow'); System.out.println('Given list: ' + colors_list); //define the array String() colors_array = new String(colors_list.size()); // get list elements into the array for (int i =0; i Çıktı:

Yukarıdaki programda, bir listeyle aynı büyüklükte bir dizi oluşturduk. Ardından bir döngüde liste öğeleri get () yöntemi kullanılarak alınır ve diziye atanır.
Diziyi Listeye Dönüştür
Bir listeyi diziye dönüştürebildiğiniz gibi, Java'da bir diziyi de listeye dönüştürebilirsiniz. Aşağıda, bir diziyi listeye dönüştürebileceğiniz yöntemlerden bazıları verilmiştir.
# 1) Düz Java Kodu kullanma
Bu, bir diziyi listeye dönüştürmenin geleneksel yöntemidir. Burada her dizi öğesini bir döngü kullanarak listeye tek tek eklersiniz. Bunun için listenin ekleme yöntemi kullanılır.
Aşağıdaki program, diziyi listeye dönüştürmek için geleneksel yöntemi uygular.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String strArray() = { 'Java', 'Python', 'C++', 'SQL', 'Perl' }; // Print the Array System.out.println('Array: ' + Arrays.toString(strArray)); // Create a List List strlist = new ArrayList(); // Iterate through the array and add each element to the list for (String val : strArray) { strlist.add(val); } // Print the List System.out.println('
List obtained from array: ' + strlist); } }
Çıktı:

# 2) asList () Yöntemini Kullanma
Bir diziyi listeye dönüştürmenin sonraki yöntemi, Arrays sınıfının asList () yöntemini kullanmaktır. Burada Array'i asList () yöntemine argüman olarak iletebilirsiniz ve elde edilen listeyi döndürür.
Aşağıdaki program bunu göstermektedir.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { //create and intialize array Integer() oddArray = { 1,3,5,7,9,11 }; //declare a list and use asList method to assign the array to list List oddList = Arrays.asList(oddArray); // Print the List System.out.println('List from array: ' + oddList); } }
Çıktı:

Yukarıdaki programda bir dizi tek sayı var. Daha sonra bir Tamsayılar listesi oluşturuyoruz ve bunu bir liste olan asList yönteminin çıktısına atıyoruz.
# 3) Collection.addAll () Yöntemini Kullanma
Dizi ve listenin ikisi de Java'daki koleksiyon çerçevesinin parçaları olduğundan, Collections sınıfının addAll () yöntemini de kullanabilirsiniz.
Aşağıdaki program, diziyi listeye dönüştürmek için Collections.addAll () yönteminin kullanımını gösterir.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String strArray() = { 'Java', 'C++', 'C', 'Perl', 'Python' }; // Print the Array System.out.println('Array: ' + Arrays.toString(strArray)); // create a string list List myList = new ArrayList(); // Add array to list using Collections addAll method Collections.addAll(myList, strArray); // Print the List System.out.println('List obtained from array: ' + myList); } }
Çıktı:

Burada bir dizi başlattık. Boş bir liste oluşturduk. Daha sonra Collections.addAll () yöntemi, listeler ve diziyi bağımsız değişken olarak ileterek kullanılır. Bu yöntemin başarılı bir şekilde yürütülmesi, dizi öğeleriyle doldurulmuş bir listeye sahip olacaktır.
# 4) Java 8 Akışlarını Kullanma
Diziyi listeye dönüştürmek için sonraki yaklaşım, Java 8 Stream API ve Collectors sınıfını kullanmaktır. Burada dizi önce akışa dönüştürülür ve ardından öğeler akış kullanılarak bir liste halinde toplanır. Toplama yöntemi. Liste en sonunda döndürülür.
Aşağıdaki program, diziyi Stream API kullanarak listeye dönüştüren uygulamayı gösterir.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String colorsArray() = { 'Red', 'Green', 'Blue', 'Yellow', 'Magenta' }; // Print the Array System.out.println('Array: ' + Arrays.toString(colorsArray)); // convert the Array to List using stream () and Collectors class List colorslist = Arrays .stream(colorsArray) .collect(Collectors.toList()); // Print the List System.out.println('List from Array: ' + colorslist); } }
Çıktı:

Yukarıdaki programda bir dizi renk oluşturulur. Ardından boş bir liste oluşturulur ve ardından stream API kullanılarak diziden elde edilen liste listeye atanır.
Listeyi Ayarlamaya Dönüştür
Küme, yinelenen değerlere izin vermeyen, sıralanmamış bir öğe koleksiyonudur. Set, Java Koleksiyonları çerçevesinin bir parçasıdır. Gerekirse bir listeyi ayarlamak için veya tam tersini dönüştürebilirsiniz.
Bu bölümde bir listeyi kümeye dönüştürmek için kullanılan yöntemlerden bazılarını görelim.
# 1) Geleneksel Yöntemi Kullanma
Listeyi geleneksel java kodunu kullanarak ayarlanacak şekilde dönüştürebilirsiniz. Bunda, bir HashSet veya treeSet oluşturabilirsiniz. Ve sonra add yöntemini kullanarak, her liste öğesini bir döngüdeki kümeye ekleyin.
Bu uygulama aşağıda gösterilmiştir.
import java.util.*; class Main { public static void main(String() args) { // Creating a list of strings List strList = Arrays.asList('Java', 'Perl', 'Python', 'C++', 'C'); //print the list System.out.println('The list : ' + strList); //create a set Set hashSet = new HashSet(); //add list elements to hashset for (String ele : strList) hashSet.add(ele); //print the set System.out.println('HashSet from list:'); for (String val : hashSet) System.out.print(val + ' '); } }
Çıktı:

Yukarıdaki programda string türünde bir HashSet nesnesi oluşturduğumuzu görebilirsiniz. Daha sonra geliştirilmiş for döngüsü kullanılarak listenin her bir öğesi kümeye eklenir. Son olarak set yazdırılır.
Önerilen Okuma = >> Java'da HashSet
# 2) HashSet veya treeet Constructor'ı kullanma
Sonraki yöntem bir set yapıcısı kullanmaktır. Burada bir set oluşturucu (treeSet veya HashSet) oluşturuyoruz. Bu kurucuya argüman olarak bir liste aktarılır. Bu listeyi kullanarak set oluşturulur.
Bu uygulama için aşağıdaki programı kontrol edin.
import java.util.*; class Main { public static void main(String() args) { // Create a list of strings List strList = Arrays.asList('Red', 'Green', 'Blue', 'Yellow', 'Cyan', 'Magenta'); System.out.println('Original List:' + strList); // Creating a hash set using constructor and pass list to the constructor Set hashSet = new HashSet(strList); System.out.println('
HashSet created from list:'); //print the hashSet for (String val : hashSet) System.out.print(val + ' '); //Create a treeset using constructor and pass list to the constructor Set treeSet = new TreeSet(strList); System.out.println('
TreeSet from list: '); //print the treeset for (String x : treeSet) System.out.print(x + ' '); } }
Çıktı:

Yukarıdaki programda, listeyi argüman olarak ileterek hem HashSet hem de treeSet oluşturuyoruz. Son olarak, hem HashSet hem de ağaç kümesinin içeriği görüntülenir.
# 3) addAll Yöntemini Kullanma
Bu, daha önce gördüğümüz Koleksiyonların addAll yöntemiyle aynıdır. Burada, liste içeriğini kümeye kopyalamak için addAll yöntemi kullanılır.
Aşağıdaki program, addAll yönteminin kullanımını göstermektedir.
import java.util.*; class Main { public static void main(String() args) { // Creating a list of strings List intList = Arrays.asList(1,3,5,7,9,11,13); System.out.println('Original List: ' + intList); //create a hashset Set hashSet = new HashSet(); //add elements of list to hashSet using addAll method hashSet.addAll(intList); System.out.println('HashSet created from list: '); //print the hashSet for (Integer val : hashSet) System.out.print(val + ' '); } }
Çıktı:

Bu program bir HashSet nesnesi oluşturur. Daha sonra, parametre olarak listeyle HashSet nesnesinde addAll yöntemi çağrılır. Bu yöntem, liste içeriğini kümeye kopyalar.
# 4) Java 8 Akışlarını Kullanma
Daha önce görüldüğü gibi, listeyi set dahil başka bir koleksiyona dönüştürmek için Java 8 akışlarını da kullanabilirsiniz. Bunu yapmak için stream (). Collect yöntemini kullanmanız gerekir.
Aşağıdaki program bu uygulamayı göstermektedir.
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a list of strings List colorsList = Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow'); System.out.println('Original List:' + colorsList); // Convert to set using stream and Collectors class toSet() method Set colorsSet = colorsList.stream().collect(Collectors.toSet()); System.out.println('The set from list:'); //print the set for (String x : colorsSet) System.out.print(x + ' '); }
Çıktı:

Yukarıdaki program, listeden bir diziye dönüştürme durumunda gösterilene benzer. Önce liste akışa dönüştürülür ve ardından toplama yöntemi akış öğelerini toplar ve kümeye dönüştürür.
Listeden ayarlamak için dönüştürmeyi gerçekleştiren çeşitli yöntemler gördüğümüze göre, kümeyi listeye dönüştürmek için kullanılan yöntemleri görelim.
Seti Listeye Dönüştür
Listeyi sete dönüştürme yönteminize benzer şekilde, seti de listeye dönüştürebilirsiniz. Bu dönüştürme için yukarıda açıklanan yöntemlerin aynısını kullanabilirsiniz. Tek fark, listenin yerlerini değiştirip programda ayarlamanızdır.
Aşağıda, her yöntem için kümeden listeye dönüştürme örnekleri verilmiştir.
# 1) Düz Java kullanmak
importjava.util.*; class Main { public static void main(String() args) { // Create a set(hashset) and initialize it Set hashSet = new HashSet(); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); hashSet.add('Cyan'); hashSet.add('Magenta'); hashSet.add('Yellow'); //print the set System.out.println('The set elements:'); for (String x : hashSet) System.out.print(x + ' '); //create a list (ArrayList) List strList = new ArrayList(hashSet.size()); //traverse the set and add its elements to the list for (String x : hashSet) strList.add(x); //print the list System.out.println('
Created ArrayList:' + strList); } }
Çıktı:

Yukarıdaki program bir küme bildirir ve başlatır. Daha sonra bir liste oluşturur ve her bir set öğesini listeye ekler. Son olarak listeyi yazdırır.
# 2) Oluşturucuları Kullanma
import java.util.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize it Set hashSet = new HashSet(); hashSet.add('Delhi'); hashSet.add('Mumbai'); hashSet.add('Chennai'); hashSet.add('Kolkata'); //print the Set System.out.println('The set :'); for(String str: hashSet) System.out.print(str + ' '); //pass hashset to linkedlist constructor List l_List = new LinkedList(hashSet); //print the linked list System.out.println ('
LinkedList from set: ' + l_List); } }
Çıktı:

Burada, bir set nesnesiyle birlikte bağımsız değişken olarak liste yapıcısını kullanabilirsiniz. Bu, tüm ayar elemanlarını liste nesnesine kopyalar.
# 3) addAll Yöntemini Kullanma
import java.util.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize it Set hashSet = new HashSet(); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); hashSet.add('Cyan'); hashSet.add('Magenta'); hashSet.add('Yellow'); //print the Set System.out.println('The set: '); for(String x:hashSet) System.out.print(x + ' '); //create a list(ArrayList) List colorList = new ArrayList(); //use addAll method to add elements from set colorList.addAll(hashSet); //print the list System.out.println('
The ArrayList from set: ' + colorList); } }
Çıktı:

Bu programda bir liste nesnesi oluşturulur. Daha sonra Collections.addAll () yöntemi kullanılarak kümenin öğeleri listeye eklenir.
# 4) Java 8 Akışını Kullanma
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize the set Set hashSet = new HashSet(); hashSet.add('Yellow'); hashSet.add('Magenta'); hashSet.add('Cyan'); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); //print the Set System.out.println('The set:'); for(String str : hashSet) System.out.print(str + ' '); //create a list and assign it elements of set through stream and Collectors class List strList = hashSet.stream().collect(Collectors.toList()); //print the list System.out.println('
List obtained from set: ' + strList); } }
Çıktı:

Yukarıdaki programda gösterildiği gibi kümeyi listeye dönüştürmek için Java 8 akışlarını ve toplama yöntemini de kullanabilirsiniz.
Dizi Vs Listesi
Şimdi bir dizi ve liste arasındaki bazı farklılıkları tartışalım.
Dizi Liste Dizi, Java'da temel bir veri yapısıdır. Liste, Java'daki koleksiyon çerçevesinin bir parçası olan ve LinkedList, ArrayList vb. Gibi birçok sınıfın genişletilebildiği bir arayüzdür. Sabit boyuta sahip Liste boyutu dinamiktir. Dizi öğelerine () kullanılarak erişilebilir. Liste üyelerine yöntemler kullanılarak erişilir. Dizi, öğeleri olarak nesnelerin yanı sıra ilkel türlere de sahip olabilir. Listeler yalnızca nesneleri içerebilir. Diziler, elemanları ile işleçleri kullanabilir. Listeler operatör kullanamaz. Bunun yerine, kullanım yöntemlerini listeler. Diziler, tür güvenliğini sağlamak için jeneriklerle çalışamaz. Listeler genel olabilir.
Sıkça Sorulan Sorular
S # 1) Java'da bir listeyi bir diziye nasıl dönüştürürsünüz?
Cevap: Java'da bir listeyi bir diziye dönüştürmenin temel yöntemi, List arabiriminin 'toArray ()' yöntemini kullanmaktır.
Aşağıdaki basit çağrı, listeyi bir diziye dönüştürür.
Object() array = list.toArray();
Listeyi bir diziye dönüştürmek için yukarıda tartışılan başka yöntemler de vardır.
S # 2) Dizi Java'da bir liste midir?
Cevap: Hayır. Dizi, Java'da sabit uzunluklu temel bir yapıdır. Liste arayüzünden genişletilmez. Liste arayüzünden uzanan ve diziye benzer yapı ArrayList'dir.
S # 3) Java'da bir diziyi listeye nasıl dönüştürürsünüz?
Cevap: Java'da bir diziyi listeye dönüştürmenin temel yöntemlerinden biri, Arrays sınıfının asList () yöntemini kullanmaktır.
List aList = Arrays.asList (myarray);
Bunun dışında, bu eğitimde daha önce tartışıldığı gibi bir diziyi listeye dönüştüren daha fazla yöntem vardır.
S # 4) Java'da hangisi daha hızlı bir küme veya listedir?
Cevap: Depolanan verilere bağlıdır. Veriler benzersizse, liste daha iyi ve daha hızlıdır. Büyük bir veri kümeniz varsa, kümeler için gidin. Ayar yapısı genellikle listelerden 10 kat daha fazla bellek gerektirir.
S # 5) DiziListesi ile Küme arasındaki fark nedir?
Cevap: Liste, sıralı elemanların bir koleksiyonudur, küme ise sırasız elemanların bir koleksiyonudur. Listede yinelenen öğeler olabilir, ancak kümede yinelenen öğeler olamaz.
Sonuç
Bu eğitimde, dizi, küme ve tam tersi için çeşitli liste dönüşümlerini gördük. Bir dizi ve bir liste arasındaki büyük farkları da gördük.
Bu sonraki eğitimde, ArrayList, LinkedList, vb. Gibi liste sınıflarını ayrıntılı olarak tartışacağız.
=> Mükemmel Java Eğitim Kılavuzuna Buradan Bakabilirsiniz.
Önerilen Kaynaklar
- Java Copy Dizisi: Java'da Bir Dizi Nasıl Kopyalanır / Klonlanır
- Java Dizisi - Java'da Bir Dizinin Elemanları Nasıl Yazdırılır?
- Java Listesi - Java'da Liste Nasıl Oluşturulur, Başlatılır ve Kullanılır
- Dizi Veri Türleri - int Array, Double array, Array of String vb.
- Java Dizisi - Java'da Bir Dizi Bildirin, Oluşturun ve Başlatın
- Java'da Dizi Nasıl Geçilir / Döndürülür
- Yeni Başlayanlar İçin JAVA Eğitimi: 100+ Uygulamalı Java Video Eğitimi
- Kod Örnekleriyle Java Dizi Uzunluğu Eğitimi