covert list array
Tento výukový program vysvětluje, jak převést seznam Java na pole a další kolekce. Zahrnuje příklady převodu seznamu na pole, řetězec, množinu a naopak:
V našich dřívějších výukových programech jsme diskutovali o podrobnostech kolekce seznamů. Viděli jsme různé operace v seznamu, iterátory atd. Vzhledem k seznamu můžeme tento seznam převést na jakékoli jiné kolekce nebo datové struktury, jako jsou řetězce, pole, ArrayList, sada atd.
=> Navštivte zde exkluzivní sérii výukových programů Java.
Co se naučíte:
Seznam konverzí
Tady vlastně děláme to, že přenášíme prvky z jedné kolekce / struktury do jiné a tím vlastně měníme rozložení prvků, protože každá kolekce nebo datová struktura má své vlastní rozložení.
V tomto kurzu probereme několik převodů ze seznamu do jiných datových struktur a naopak.
Převést seznam na řetězec
Seznam prvků můžete snadno převést na řetězcovou reprezentaci. Většinou budete chtít převést seznam řetězců nebo znaků na řetězcovou reprezentaci.
Seznam lze převést na řetězec různými způsoby. Nejpopulárnější jsou popsány níže.
# 1) Použití metody toString
Toto je nejjednodušší způsob převodu seznamu na řetězec. V této metodě jednoduše použijete metodu ‚toString 'v seznamu, který převede seznam na řetězcovou reprezentaci.
Níže uvedený program ukazuje implementaci metody toString.
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); } }
Výstup:
V tomto programu vidíte, že po převodu seznamu znaků na řetězcovou reprezentaci je řetězec dále upřesněn odstraněním oddělovacích znaků z něj a jeho reprezentací jako jediného slova.
# 2) Používání Collectors Class
Od prostředí Java 8 a dále můžete k převedení seznamu na řetězec využít rozhraní API pro streamování pomocí třídy ‚Collectors‘.
Příklad:
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); } }
Výstup:
Ve výše uvedeném programu využíváme stream API, mapujeme hodnoty a poté používáme metodu joining () třídy Collectors a převedeme seznam na řetězec.
# 3) Používání třídy StringBuilder
Třetí metoda převodu seznamu na řetězec je pomocí objektu StringBuilder. Zde je každý prvek v seznamu připojen k objektu StringBuilder pomocí smyčky. Potom je objekt StringBuilder převeden na jeho řetězcovou reprezentaci pomocí metody toString.
Předvedení zkontrolujte v následujícím programu.
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); } }
Výstup:
Výše uvedený program ukazuje použití objektu StringBuilder, ke kterému jsou připojeny prvky v seznamu. Poté je objekt převeden na řetězec.
Převod seznamu do pole
Vzhledem k seznamu prvků je třeba tento seznam převést na pole. K tomu můžete použít kteroukoli z níže popsaných metod.
# 1) Použití toArray
Nejjednodušší způsob, jak převést seznam na pole, je použít metodu „toArray“ seznamu.
Následující program ukazuje tuto implementaci metody toArray.
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 + ' '); } }
Výstup:
Ve výše uvedeném programu jsme převedli seznam řetězců na pole řetězců pomocí metody ‚toArray '.
# 2) Používání Java 8 Stream
jak najdu klíč zabezpečení sítě
Další metodou pro převod seznamu na pole je použití streamovacích API prostředí Java 8. V tomto seznamu se nejprve převede na stream a poté pomocí stream (). ToArray se převede na pole.
Následující program Java ukazuje tuto konverzi.
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 + ' '); } }
Výstup:
Výše uvedený program používá streamovací API Java 8 a převádí seznam na pole. Pole se poté vytiskne pomocí pro každou smyčku.
# 3) Použití metody get
Toto je další způsob převodu seznamu na pole. V tomto použijeme get () seznamu, který lze použít k načtení jednotlivých prvků seznamu.
Níže je uveden program pro převod seznamu na pole pomocí metody get ().
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 Výstup:
Ve výše uvedeném programu jsme vytvořili pole stejné velikosti jako seznam. Pak ve smyčce jsou prvky seznamu načteny pomocí metody get () a přiřazeny k poli.
Převést pole na seznam
Jak můžete převést seznam na pole, můžete také převést pole na seznam v Javě. Níže uvádíme některé z metod, pomocí kterých můžete pole převést na seznam.
# 1) Použití prostého kódu Java
Toto je tradiční metoda převodu pole na seznam. Zde přidáte každý prvek pole do seznamu jeden po druhém pomocí smyčky. Pro toto přidání se používá metoda seznamu.
Následující program implementuje tradiční metodu převodu pole na seznam.
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); } }
Výstup:
# 2) Použití metody asList ()
Další metodou převodu pole na seznam je použití metody asList () třídy Arrays. Zde můžete předat Array jako argument metodě asList () a vrátí získaný seznam.
Následující program to ukazuje.
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); } }
Výstup:
Ve výše uvedeném programu máme řadu lichých čísel. Poté vytvoříme seznam celých čísel a přiřadíme jej výstupu metody asList, což je seznam.
# 3) Použití metody Collection.addAll ()
Můžete také použít metodu addAll () třídy Collection, protože pole a seznam jsou obě části rámce kolekce v Javě.
Následující program ukazuje použití metody Collections.addAll () k převodu pole na seznam.
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); } }
Výstup:
Zde jsme inicializovali pole. Vytvořili jsme prázdný seznam. Pak se použije metoda Collections.addAll () předáním seznamů a pole jako argumentu. Úspěšné provedení této metody bude mít seznam naplněný prvky pole.
# 4) Používání streamů Java 8
Další přístup k převodu pole na seznam je pomocí rozhraní Java 8 Stream API a třídy Collectors. Zde je pole nejprve převedeno na stream a poté jsou prvky shromážděny do seznamu pomocí proudu. Sbírejte metodu. Seznam se nakonec vrátí.
Následující program ukazuje implementaci, která převádí pole na seznam pomocí Stream API.
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); } }
Výstup:
Ve výše uvedeném programu je vytvořena řada barev. Dále se vytvoří prázdný seznam a poté se do seznamu přiřadí seznam získaný z pole pomocí stream API.
Převést seznam na nastavení
Sada je neuspořádaná kolekce prvků, která neumožňuje duplicitní hodnoty. Sada je součástí rámce Java Collections. V případě potřeby můžete převést seznam na množinu a naopak.
V této části se podíváme na některé z metod, které se používají k převodu seznamu na sadu.
# 1) Použití tradiční metody
Seznam můžete převést na sadu pomocí tradičního kódu Java. V tomto můžete vytvořit HashSet nebo treeSet. A pak pomocí metody add přidejte každý prvek seznamu do sady ve smyčce.
Tato implementace je uvedena níže.
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 + ' '); } }
Výstup:
Ve výše uvedeném programu vidíte, že jsme vytvořili objekt HashSet typu řetězec. Poté pomocí vylepšené smyčky for je každý prvek seznamu přidán do sady. Nakonec je sada vytištěna.
Doporučené čtení = >> HashSet v Javě
# 2) Používání HashSet nebo TreeSet Constructor
Další metodou je použití konstruktoru sady. Zde vytvoříme konstruktor sady (treeSet nebo HashSet). Seznam je předán tomuto konstruktoru jako argument. Pomocí tohoto seznamu je sestava sestavena.
Zkontrolujte tuto implementaci v níže uvedeném programu.
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 + ' '); } }
Výstup:
Ve výše uvedeném programu vytvoříme HashSet i treeSet předáním seznamu jako argumentu. Nakonec se zobrazí obsah HashSet i stromové sady.
# 3) Použití metody addAll
To je stejné jako metoda addAll sbírek, kterou jsme viděli dříve. Zde se metoda addAll používá ke kopírování obsahu seznamu do sady.
Následující program ukazuje použití metody addAll.
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 + ' '); } }
Výstup:
Tento program vytvoří objekt HashSet. Pak je metoda addAll vyvolána na objektu HashSet se seznamem jako parametrem. Tato metoda zkopíruje obsah seznamu do sady.
# 4) Používání streamů Java 8
Jak již bylo vidět, můžete také použít streamy prostředí Java 8 k převedení seznamu na jakoukoli jinou kolekci včetně sady. K tomu musíte použít metodu stream (). Collect.
Následující program ukazuje tuto implementaci.
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 + ' '); }
Výstup:
Výše uvedený program je podobný programu zobrazenému v případě převodu ze seznamu na pole. Nejprve se seznam převede na stream a metoda collect poté shromáždí prvky proudu a převede se na set.
Nyní, když jsme viděli různé metody, které provádějí převod ze seznamu na sadu, podívejme se na metody, které se používají k převodu sady na seznam.
Převést Set To List
Podobně jako způsob, jakým převádíte seznam na sadu, můžete také převést sadu na seznam. Pro tuto konverzi můžete použít stejné metody popsané výše. Jediný rozdíl je v tom, že přepnete místa v seznamu a nastavíte v programu.
Níže jsou uvedeny příklady převodu ze sady na seznam pro každou metodu.
# 1) Používání prosté Javy
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); } }
Výstup:
Výše uvedený program deklaruje a inicializuje sadu. Poté vytvoří seznam a přidá každý prvek sady do seznamu. Nakonec vytiskne seznam.
# 2) Používání konstruktorů
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); } }
Výstup:
Tady můžete použít konstruktor seznamu s objektem set jako argumentem. Tím se zkopírují všechny nastavené prvky do objektu seznamu.
# 3) Použití metody addAll
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); } }
Výstup:
V tomto programu je vytvořen objekt seznamu. Potom pomocí metody Collections.addAll () se prvky sady přidají do seznamu.
# 4) Používání Java 8 Stream
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); } }
Výstup:
Můžete také použít proudy Java 8 a metodu collect k převodu sady do seznamu, jak je uvedeno ve výše uvedeném programu.
Seznam Vs
Pojďme diskutovat o některých rozdílech mezi polem a seznamem.
Pole Seznam Pole je základní datovou strukturou v Javě. Seznam je rozhraní, které je součástí rámce sběru v Javě, ze kterého lze rozšířit mnoho tříd, jako jsou LinkedList, ArrayList atd. Má pevnou velikost Velikost seznamu je dynamická. K prvkům polí lze přistupovat pomocí (). Členové seznamu jsou přístupní pomocí metod. Pole může mít primitivní typy i objekty jako jeho prvky. Seznamy mohou obsahovat pouze objekty. Pole mohou s jeho prvky používat operátory. Seznamy nemohou používat operátory. Místo toho uvádí seznam metod použití. Pole nemohou spolupracovat s generiky k zajištění bezpečnosti typu. Seznamy mohou být obecné.
Často kladené otázky
Otázka č. 1) Jak převádíte seznam na pole v Javě?
Odpovědět: Základní metodou převodu seznamu na pole v Javě je použití metody ‚toArray () 'rozhraní Seznam.
Jednoduché volání níže převede seznam na pole.
Object() array = list.toArray();
Existují také další metody popsané výše, které slouží k převodu seznamu na pole.
Otázka 2) Je pole v Javě seznam?
Odpovědět: Ne. Pole je základní struktura v Javě s pevnou délkou. Nezahrnuje se z rozhraní seznamu. Struktura, která sahá od rozhraní seznamu a je podobná poli, je ArrayList.
Otázka č. 3) Jak převádíte pole na seznam v Javě?
Odpovědět: Jednou ze základních metod převodu pole na seznam v Javě je použití metody asList () třídy Arrays.
List aList = Arrays.asList (myarray);
Kromě toho existuje více metod, které převádějí pole na seznam, jak je popsáno výše v tomto kurzu.
Otázka č. 4) Co je rychlejší sada nebo seznam v Javě?
Odpovědět: Závisí to na uložených datech. Pokud jsou data jedinečná, je seznam lepší a rychlejší. Pokud máte velkou datovou sadu, přejděte na sady. Nastavená struktura obvykle vyžaduje 10krát více paměti než seznamy.
Otázka č. 5) Jaký je rozdíl mezi ArrayList a Set?
Odpovědět: Seznam je kolekcí seřazených prvků, zatímco sada je kolekcí neuspořádaných prvků. Seznam může obsahovat duplicitní prvky, ale sada nemůže mít duplicitní prvky.
Závěr
V tomto tutoriálu jsme viděli různé převody seznamu na pole, množinu a naopak. Také jsme viděli hlavní rozdíly mezi polem a seznamem.
V tomto dalším tutoriálu podrobně probereme třídy seznamu, jako je ArrayList, LinkedList atd.
=> Podívejte se na průvodce Perfect Java Training Guide zde.
Doporučené čtení
- Java Copy Array: Jak kopírovat / klonovat pole v Javě
- Java Array - Jak tisknout prvky pole v Javě?
- Seznam Java - Jak vytvořit, inicializovat a používat seznam v Javě
- Datové typy polí - int pole, dvojité pole, pole řetězců atd.
- Java Array - deklarovat, vytvořit a inicializovat pole v Javě
- Jak předat / vrátit pole v Javě
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video
- Výukový program Java Array Length s příklady kódu