covert list array
Tento výukový program vysvetľuje, ako previesť zoznam Java na pole a ďalšie kolekcie. Zahŕňa príklady na prevod zoznamu na pole, reťazce, množiny a naopak:
V našich predchádzajúcich tutoriáloch sme diskutovali o podrobnostiach zbierky zoznamov. Videli sme rôzne operácie na zozname, iterátoroch atď. Na základe zoznamu môžeme tento zoznam previesť na akékoľvek ďalšie kolekcie alebo dátové štruktúry, ako sú reťazce, polia, ArrayList, množina atď.
=> Navštívte tu sériu exkluzívnych výukových programov Java.
Čo sa dozviete:
Zoznam konverzií
Tu vlastne robíme to, že prenášame prvky z jednej kolekcie / štruktúry do druhej a tým vlastne meníme rozloženie prvkov, pretože každá kolekcia alebo dátová štruktúra má svoje vlastné rozloženie.
V tomto tutoriáli si rozoberieme niekoľko konverzií zo zoznamu do iných dátových štruktúr a naopak.
Prevod zoznamu na reťazec
Zoznam prvkov môžete ľahko previesť na jeho reťazcovú reprezentáciu. Väčšinou budete chcieť previesť zoznam reťazcov alebo znakov na reťazcovú reprezentáciu.
Existuje niekoľko spôsobov prevedenia zoznamu na reťazec. Najobľúbenejšie z nich sú uvedené nižšie.
# 1) Použitie metódy toString
Toto je najjednoduchší spôsob prevodu zoznamu na reťazec. V tejto metóde jednoducho použijete metódu „toString“ na zozname, ktorý prevedie zoznam na reťazcovú reprezentáciu.
Nasledujúci program ukazuje implementáciu metódy 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ýkon:
V tomto programe vidíte, že po prevedení zoznamu znakov na reťazcovú reprezentáciu sa reťazec ďalej spresní tak, že sa z neho odstránia vymedzovacie znaky a predstavuje sa ako jedno slovo.
# 2) Používanie zberateľskej triedy
Od Javy 8 a ďalej môžete na konverziu zoznamu na reťazec využiť streamové API s triedou „Collectors“.
Prí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ýkon:
Vo vyššie uvedenom programe využívame streamové API, mapujeme hodnoty a potom používame metódu joining () triedy Collectors a zoznam prevádzame na reťazec.
# 3) Používanie triedy StringBuilder
Tretia metóda prevodu zoznamu na reťazec je použitie objektu StringBuilder. Tu je každý prvok v zozname pripojený k objektu StringBuilder pomocou slučky. Potom sa objekt StringBuilder prevedie na jeho reťazcovú reprezentáciu pomocou metódy toString.
Skontrolujte demonštráciu v nasledujúcom programe.
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ýkon:
Vyššie uvedený program ukazuje použitie objektu StringBuilder, ku ktorému sú pripojené prvky v zozname. Potom sa objekt prevedie na reťazec.
Prevod zoznamu na pole
Vzhľadom na zoznam prvkov musíte tento zoznam previesť do poľa. K tomu môžete použiť ktorúkoľvek z metód opísaných nižšie.
# 1) Pomocou toArray
Najjednoduchší spôsob, ako previesť zoznam na pole, je použiť metódu zoznamu „toArray“.
Nasledujúci program ukazuje túto implementáciu metódy 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ýkon:
Vo vyššie uvedenom programe sme pomocou metódy ‘toArray’ konvertovali zoznam reťazcov na pole reťazcov.
# 2) Používanie Java 8 Stream
čo je súbor 7z?
Ďalším spôsobom, ako previesť zoznam na pole, je použitie streamovacích rozhraní API Java 8. V tomto zozname sa najskôr prevedie zoznam na stream a potom sa pomocou stream (). ToArray prevedie na pole.
Nasledujúci program Java zobrazuje túto konverziu.
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ýkon:
Vyššie uvedený program používa streamové API Java 8 a prevádza zoznam na pole. Pole sa potom vytlačí pomocou pre každú slučku.
# 3) Použitie metódy get
Toto je ďalší spôsob prevodu zoznamu na pole. V tomto použijeme get () zoznamu, ktorým je možné načítať jednotlivé prvky zoznamu.
Program na prevod zoznamu na pole pomocou metódy get () je uvedený nižšie.
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ýkon:
Vo vyššie uvedenom programe sme vytvorili pole rovnakej veľkosti ako zoznam. Potom sa v slučke získajú prvky zoznamu pomocou metódy get () a priradí sa im pole.
Previesť pole na zoznam
Pretože môžete previesť zoznam na pole, môžete tiež previesť pole na zoznam v prostredí Java. Ďalej uvádzame niektoré z metód, pomocou ktorých môžete konvertovať pole na zoznam.
# 1) Používanie obyčajného kódu Java
Toto je tradičná metóda prevodu poľa na zoznam. Tu pridáte každý prvok poľa do zoznamu jeden po druhom pomocou slučky. Na tento účel sa používa metóda zoznamu.
Nasledujúci program implementuje tradičnú metódu prevodu poľa na zoznam.
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ýkon:
# 2) Použitie metódy asList ()
Ďalšou metódou prevodu poľa na zoznam je použitie metódy asList () triedy Arrays. Tu môžete Array odovzdať ako argument metóde asList () a vráti získaný zoznam.
Nasledujúci 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ýkon:
Vo vyššie uvedenom programe máme pole nepárnych čísel. Potom vytvoríme zoznam celých čísel a priradíme ich k výstupu metódy asList, ktorým je zoznam.
# 3) Použitie metódy Collection.addAll ()
Môžete tiež použiť metódu addAll () triedy Collections, pretože pole aj zoznam sú obidve časti rámca kolekcie v Jave.
Nasledujúci program ukazuje použitie metódy Collections.addAll () na prevod poľa na zoznam.
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ýkon:
Tu sme inicializovali pole. Vytvorili sme prázdny zoznam. Potom sa použije metóda Collections.addAll (), ktorá odovzdá zoznamy a pole ako argument. Úspešné vykonanie tejto metódy bude mať zoznam vyplnený prvkami poľa.
# 4) Používanie streamov Java 8
Ďalším spôsobom, ako previesť pole na zoznam, je použitie rozhrania Java 8 Stream API a triedy Collectors. Tu sa pole najskôr prevedie na prúd a potom sa prvky zhromaždia do zoznamu pomocou prúdu. Zbierajte metódu. Zoznam sa vráti konečne.
Nasledujúci program ukazuje implementáciu, ktorá prevádza pole na zoznam pomocou 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ýkon:
Vo vyššie uvedenom programe je vytvorená paleta farieb. Ďalej sa vytvorí prázdny zoznam a potom sa k zoznamu priradí zoznam získaný z poľa pomocou stream API.
Prevod zoznamu na nastavenie
Sada je neusporiadaná kolekcia prvkov, ktorá neumožňuje duplicitné hodnoty. Sada je súčasťou rámca Java Collections. Ak je to potrebné, môžete previesť zoznam na množinu a naopak.
V tejto časti sa pozrime na niektoré z metód, ktoré sa používajú na prevod zoznamu na množinu.
# 1) Použitie tradičnej metódy
Zoznam môžete previesť na nastavený pomocou tradičného kódu Java. V tomto môžete vytvoriť HashSet alebo treeSet. A potom pomocou metódy add pridajte každý prvok zoznamu do množiny v slučke.
Táto implementácia je uvedená nižšie.
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ýkon:
Vo vyššie uvedenom programe vidíte, že sme vytvorili objekt HashSet typu reťazec. Potom sa pomocou vylepšenej slučky for pridá každý prvok zoznamu do množiny. Nakoniec sa sada vytlačí.
Odporúčané čítanie = >> HashSet v Jave
# 2) Použitie HashSet alebo TreeSet Constructor
Ďalšou metódou je použitie konštruktora množiny. Tu vytvoríme konštruktor množiny (treeSet alebo HashSet). Zoznam sa tomuto argumentu odovzdá ako argument. Pomocou tohto zoznamu je zostava zostavená.
Skontrolujte implementáciu podľa nižšie uvedeného 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ýkon:
Vo vyššie uvedenom programe vytvoríme HashSet aj treeSet odovzdaním zoznamu ako argumentu. Nakoniec sa zobrazí obsah HashSet aj stromovej sady.
# 3) Použitie metódy addAll
Je to rovnaké ako metóda addAll zbierok, ktorú sme videli predtým. Tu sa na kopírovanie obsahu zoznamu do množiny používa metóda addAll.
Nasledujúci program ukazuje použitie metódy 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ýkon:
Tento program vytvorí objekt HashSet. Potom sa na objekt HashSet vyvolá metóda addAll so zoznamom ako parametrom. Táto metóda skopíruje obsah zoznamu do sady.
# 4) Používanie streamov Java 8
Ako už bolo vidieť, na prevedenie zoznamu do akejkoľvek inej zbierky vrátane množiny môžete tiež použiť prúdy Java 8. Ak to chcete urobiť, musíte použiť metódu stream (). Collect.
Nasledujúci program ukazuje túto implementáciu.
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ýkon:
Vyššie uvedený program je podobný tomu, ktorý sa zobrazuje v prípade prevodu zo zoznamu na pole. Najskôr sa zoznam prevedie na stream a potom metóda collect zhromaždí prvky toku a prevedie ich na množinu.
Teraz, keď sme videli rôzne metódy, ktoré vykonávajú prevod zo zoznamu na množinu, pozrime sa na metódy, ktoré sa používajú na prevod množiny na zoznam.
Konvertovať Nastaviť Na Zoznam
Podobným spôsobom, akým prevádzate zoznam na množinu, môžete tiež prevádzať množinu na zoznam. Pre túto konverziu môžete použiť rovnaké metódy, aké sú opísané vyššie. Rozdiel je iba v tom, že prepínate miesta v zozname a nastavujete ich v programe.
Ďalej uvádzame príklady konverzie zo sady na zoznam pre každú metódu.
# 1) Používanie obyčajnej 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ýkon:
Vyššie uvedený program deklaruje a inicializuje množinu. Potom vytvorí zoznam a do zoznamu pridá každý prvok množiny. Nakoniec zoznam vytlačí.
# 2) Používanie konštruktérov
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ýkon:
Tu môžete použiť konštruktor zoznamu s objektom množiny ako argumentom. Týmto sa skopírujú všetky nastavené prvky do objektu zoznamu.
# 3) Použitie metódy 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ýkon:
V tomto programe sa vytvorí objekt zoznamu. Potom pomocou metódy Collections.addAll () sa prvky sady pridajú do zoznamu.
# 4) Používanie 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ýkon:
Môžete tiež použiť prúdy Java 8 a metódu collect na prevedenie množiny do zoznamu, ako je uvedené vo vyššie uvedenom programe.
Zoznam Vs
Poďme si predstaviť niektoré rozdiely medzi poľom a zoznamom.
Pole Zoznam Pole je základnou dátovou štruktúrou v Jave. Zoznam je rozhraním, ktoré je súčasťou rámca zberu v jazyku Java, z ktorého je možné rozšíriť mnohé triedy, ako napríklad LinkedList, ArrayList atď. Má pevnú veľkosť Veľkosť zoznamu je dynamická. K prvkom poľa je prístup pomocou []. Členovia zoznamu sú prístupní pomocou metód. Pole môže mať primitívne typy, ako aj objekty ako jeho prvky. Zoznamy môžu obsahovať iba objekty. Polia môžu so svojimi prvkami používať operátory. Zoznamy nemôžu používať operátorov. Namiesto toho uvádza zoznam použitých metód. Polia nemôžu pracovať s generikami na zaistenie bezpečnosti typu. Zoznamy môžu byť všeobecné.
často kladené otázky
Otázka č. 1) Ako prevádzate zoznam na pole v Jave?
Odpoveď: Základnou metódou na konverziu zoznamu na pole v Jave je použitie metódy „toArray ()“ rozhrania Zoznam.
Nasledujúci jednoduchý hovor prevedie zoznam na pole.
Object[] array = list.toArray();
Existujú aj ďalšie spôsoby, ako je uvedené vyššie, na konverziu zoznamu na pole.
Otázka 2) Je pole v zozname Java?
Odpoveď: Nie. Pole je základná štruktúra v Jave s pevnou dĺžkou. Nepresahuje sa od rozhrania zoznamu. Štruktúra, ktorá vychádza z rozhrania zoznamu a je podobná s poľom, je ArrayList.
Otázka č. 3) Ako konvertujete pole na zoznam v Jave?
Odpoveď: Jednou zo základných metód na prevod poľa na zoznam v Jave je použitie metódy asList () triedy Arrays.
List aList = Arrays.asList (myarray);
Okrem toho existuje viac metód, ktoré prevádzajú pole na zoznam, ako je to popísané vyššie v tomto návode.
Otázka č. 4) Čo je rýchlejšia sada alebo zoznam v jazyku Java?
Odpoveď: Závisí to od uložených údajov. Ak sú údaje jedinečné, zoznam je lepší a rýchlejší. Ak máte veľkú množinu údajov, choďte na množiny. Nastavená štruktúra vyžaduje zvyčajne 10-krát viac pamäte ako zoznamy.
Otázka 5) Aký je rozdiel medzi ArrayList a Set?
Odpoveď: Zoznam je kolekciou usporiadaných prvkov, zatiaľ čo sada je kolekciou neusporiadaných prvkov. Zoznam môže obsahovať duplicitné prvky, ale množina nemôže obsahovať duplicitné prvky.
Záver
V tomto tutoriáli sme videli rôzne konverzie zoznamu do poľa, množiny a naopak. Videli sme tiež hlavné rozdiely medzi poľom a zoznamom.
V tomto ďalšom návode si podrobne rozoberieme triedy zoznamov ako ArrayList, LinkedList atď.
=> Vyskúšajte tu Sprievodcu dokonalým školením Java.
Odporúčané čítanie
- Kopírovacie pole Java: Ako kopírovať / klonovať pole v Jave
- Java Array - Ako tlačiť prvky poľa v Jave?
- Zoznam Java - Ako vytvoriť, inicializovať a používať zoznam v jazyku Java
- Typy údajov poľa - int pole, dvojité pole, pole reťazcov atď.
- Java Array - Deklarovať, vytvoriť a inicializovať pole v Jave
- Ako odovzdať / vrátiť pole v Jave
- Výukový program JAVA pre začiatočníkov: viac ako 100 praktických výučbových programov Java Video
- Výukový program Java Array Length s príkladmi kódu