java arraylist conversions other collections
Tento výukový program pojednáva o konverziách ArrayList na iné kolekcie, ako sú množiny, LinkedList, zoznamy atď., Spolu s rozdielmi medzi týmito kolekciami:
Doteraz sme videli takmer všetky koncepty súvisiace s ArrayList v Jave. Okrem vytvárania a manipulácie s ArrayList pomocou rôznych operácií alebo metód poskytovaných triedou ArrayList je niekedy tiež potrebné previesť ArrayList do jednej alebo viacerých kolekcií.
=> Navštívte tu a dozviete sa Java od začiatku.
V tomto výučbe sa budeme zaoberať niektorými prevodmi z ArrayList do iných kolekcií, ktoré zahŕňajú List, LinkedList, Vector, Set atď. Zvážime tiež prevod medzi ArrayList a String. Po konverziách budeme diskutovať aj o rozdieloch medzi ArrayLists a inými kolekciami - polia, zoznam, vektor, LinkedList atď.
Čo sa dozviete:
ako porovnávať súbory v linuxe
- ArrayList na konverziu reťazca
- Konverzia reťazca na ArrayList
- Preveďte zoznam na ArrayList v Jave
- Preveďte súbor ArrayList na nastavenie v prostredí Java
- Previesť Set To ArrayList v Jave
- Pole ArrayList v Jave
- Zoznam polí v Jave
- Zoznam Vs ArrayList v Jave
- Vektor Vs ArrayList
- ArrayList vs LinkedList
- často kladené otázky
- Záver
- Odporúčané čítanie
ArrayList na konverziu reťazca
Nasledujúce metódy možno použiť na prevod ArrayList na String.
# 1) Používanie objektu StringBuilder
import java.util.ArrayList; public class Main { public static void main(String args()) { //Create and initialize the ArrayList ArrayList strList = new ArrayList(); strList.add('Software'); strList.add('Testing'); strList.add('Help'); //print the ArrayList System.out.println('The ArrayList: ' + strList); //define a stringbuilder object StringBuffer sb = new StringBuffer(); //append each ArrayList element to the stringbuilder object for (String str : strList) { sb.append(str + ' '); } //convert stringbuilder to string and print it. String myStr = sb.toString(); System.out.println('
String from ArrayList: ' + myStr); } }
Výkon:
ArrayList: (Softvér, Testovanie, Pomoc)
Reťazec z ArrayList: Pomocník pri testovaní softvéru
Vo vyššie uvedenom programe sa vytvorí objekt StringBuilder. Potom pomocou slučky forEach je každý prvok v zozname ArrayList pripojený k objektu StringBuilder. Potom sa objekt StringBuilder prevedie na reťazec. Upozorňujeme, že pomocou metódy „append“ aplikácie StringBuilder; k reťazcu môžete tiež pridať vhodný oddeľovač.
Vo vyššie uvedenom príklade sme ako oddeľovač použili medzeru („“).
# 2) Použitie metódy String.join ()
Na konverziu ArrayList na String je možné použiť metódu String.join (). Tu môžete tiež vložiť vhodný oddeľovač do metódy spojenia.
Nasledujúci program to demonštruje.
import java.util.ArrayList; public class Main { public static void main(String() args) { // create and initialize the ArrayList ArrayList metroList = new ArrayList(); metroList.add('Delhi'); metroList.add('Mumbai'); metroList.add('Chennai'); metroList.add('Kolkata'); //print the ArrayList System.out.println('The ArrayList: ' + metroList); // Join with an empty delimiter to concat all strings. String resultStr = String.join(' ', metroList); System.out.println('
String converted from ArrayList: '+resultStr); } }
Výkon:
Zoznam Array: (Dillí, Bombaj, Chennai, Kalkata)
Reťazec prevedený z ArrayList: Dillí Bombaj Chennai Kalkata
Vidíte, že priamo odovzdávame ArrayList ako argument metóde String.join () spolu s oddeľovačom.
Pre jednoduché String ArrayLists je najlepšou metódou na prevod na String String.join (). Pre zložitejšie objekty ArrayLists je ale použitie StringBuilder efektívnejšie.
Konverzia reťazca na ArrayList
Ak chcete previesť reťazec na ArrayList, existujú dva kroky:
- Reťazec je rozdelený pomocou funkcie split () a podreťazce (rozdelené na vhodnom oddeľovači) sú uložené v poli reťazca.
- Pole reťazcov získané rozdelením reťazca sa potom prevedie na ArrayList pomocou metódy „asList ()“ triedy Arrays.
Program na prevod reťazca na ArrayList je uvedený nižšie.
import java.util.ArrayList; import java.util.List; import java.util.Arrays; public class Main { public static void main(String args()){ //define a string String myStr = 'The string to ArrayList program'; //convert string to array using split function on spaces String strArray() = myStr.split(' '); //print the string System.out.println('The input string : ' + myStr); //declare an ArrayList List strList = new ArrayList(); //convert string array to ArrayList using asList method strList = Arrays.asList(strArray); //print the resultant ArrayList System.out.println('
The ArrayList from String:' + strList ); } }
Výkon:
Vstupný reťazec: Reťazec do programu ArrayList
Zoznam ArrayList z reťazca: (The, string, to, ArrayList, program)
Vo vyššie uvedenom programe rozdeľujeme reťazec na medzery a zhromažďujeme ho v poli reťazcov. Toto pole sa potom prevedie na ArrayList reťazcov.
Preveďte zoznam na ArrayList v Jave
ArrayList implementuje rozhranie zoznamu. Ak chcete previesť zoznam na svoju implementáciu, ako je ArrayList, môžete to urobiť pomocou metódy addAll v rozhraní zoznamu.
Nasledujúci program zobrazuje konverziu zoznamu na ArrayList pridaním všetkých prvkov zoznamu do ArrayList.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String a()){ //create a list & initiliaze it List collections_List = new ArrayList(); collections_List.add('ArrayList'); collections_List.add('Vector'); collections_List.add('LinkedList'); collections_List.add('Stack'); collections_List.add('Set'); collections_List.add('Map'); //print the list System.out.println('List contents: '+collections_List); //create an ArrayList ArrayList myList = new ArrayList(); //use addAll() method to add list elements to ArrayList myList.addAll(collections_List); //print the ArrayList System.out.println('
ArrayList after adding elements: '+myList); } }
Výkon:
Obsah zoznamu: (ArrayList, Vector, LinkedList, Stack, Set, Map)
ArrayList po pridaní prvkov: (ArrayList, Vector, LinkedList, Stack, Set, Map)
Preveďte súbor ArrayList na nastavenie v prostredí Java
Nasledujúce metódy konvertujú ArrayList na množinu.
# 1) Použitie tradičného iteratívneho prístupu
Toto je tradičný prístup. Tu prechádzame zoznamom a každý prvok ArrayList pridáme do množiny.
V programe nižšie máme ArrayList reťazca. Deklarujeme HashSet reťazca. Potom pomocou slučky forEach iterujeme cez ArrayList a pridáme každý prvok do HashSet.
Podobným spôsobom môžeme previesť aj ArrayList na treeSet.
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a HashSet Set hSet = new HashSet(); //Add each ArrayList element to the set for (String x : colorsList) hSet.add(x); //Print the HashSet System.out.println('
HashSet obtained from ArrayList: ' + hSet); } }
Výkon:
Zoznam polí: (červená, zelená, modrá, azúrová, purpurová, žltá)
HashSet získaný z ArrayList: (červená, azúrová, modrá, žltá, purpurová, zelená)
# 2) Používanie Set Constructor
Ďalšou metódou na prevod súboru ArrayList na množinu je použitie konštruktora. V tejto metóde odovzdáme ArrayList ako argument konštruktoru množiny a tým inicializujeme objekt množiny s prvkami ArrayList.
Nasledujúci program ukazuje použitie ArrayList pri vytváraní objektu množiny.
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a TreeSet Set tSet = new TreeSet(colorsList); //Print the TreeSet System.out.println('
TreeSet obtained from ArrayList: ' + tSet); } }
Výkon:
ArrayList: (Červená, Zelená, Modrá, Azúrová, Purpurová, Žltá
Sada stromov získaná z ArrayList: (modrá, azúrová, zelená, purpurová, červená, žltá)
# 3) Použitie metódy addAll
Môžete tiež použiť metódu addAll z Set na pridanie všetkých prvkov ArrayList do sady.
Nasledujúci program používa metódu addAll na pridanie prvkov ArrayList do HashSet.
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a HashSet Set hSet = new HashSet(); //use addAll method of HashSet to add elements of ArrayList hSet.addAll(colorsList); //Print the HashSet System.out.println('
HashSet obtained from ArrayList: ' + hSet); } }
Výkon:
Zoznam polí: (červená, zelená, modrá, azúrová, purpurová, žltá)
HashSet získaný z ArrayList: (červená, azúrová, modrá, žltá, purpurová, zelená)
# 4) Používanie Java 8 Stream
Prúdy sú novým prírastkom do Java 8. Táto trieda prúdov poskytuje metódu na prevod ArrayList na prúd a potom na nastavenie.
Nižšie uvedený program Java demonštruje použitie metódy triedy prúdov na konverziu ArrayList na sadu.
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); // Convert ArrayList to set using stream Set set = colorsList.stream().collect(Collectors.toSet()); //Print the Set System.out.println('
Set obtained from ArrayList: ' + set); } }
Výkon:
Zoznam polí: (červená, zelená, modrá, azúrová, purpurová, žltá)
Sada získaná z ArrayList: (červená, azúrová, modrá, žltá, purpurová, zelená)
Previesť Set To ArrayList v Jave
V poslednej časti sme videli konverziu ArrayList na Set. Prepočet z množiny na ArrayList tiež používa rovnaké metódy, ako sú opísané vyššie, s tým rozdielom, že sa mení poloha množiny a množiny ArrayList.
Nižšie sú uvedené príklady programovania na prevod sady na ArrayList. Ďalší popis pre každú metódu zostáva rovnaký.
# 1) Iteratívny prístup
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList ArrayList numList = new ArrayList(set.size()); //add each set element to the ArrayList using add method for (String str : set) numList.add(str); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
Výkon:
Daná sada: (jedna, dva, tri)
ArrayList získaný z množiny: (jeden, dva, tri)
Vo vyššie uvedenom programe prechádzame množinou a každý prvok množiny sa pridáva do zoznamu ArrayList.
# 2) Používanie konštruktora
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList and pass set to the constructor List numList = new ArrayList(set); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
Výkon:
Daná sada: (jedna, dva, tri)
ArrayList získaný z množiny: (jeden, dva, tri)
Vyššie uvedený program vytvorí množinu a ArrayList. Objekt ArrayList sa vytvorí poskytnutím objektu množiny ako argumentu v jeho konštruktore.
# 3) Použitie metódy addAll
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList List numList = new ArrayList(); //use addAll method of ArrayList to add elements of set numList.addAll(set); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
Výkon:
Daná sada: (jedna, dva, tri)
ArrayList získaný z množiny: (jeden, dva, tri)
Tu používame metódu addAll z ArrayList na pridanie prvkov zo sady do ArrayList.
# 4) Používanie Java 8 Stream
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList and using stream method,assign stream of elements to ArrayList List numList = set.stream().collect(Collectors.toList()); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
Výkon:
Daná sada: (jedna, dva, tri)
ArrayList získaný z množiny: (jeden, dva, tri)
Vyššie uvedený program používa triedu prúdov na konverziu Set na ArrayList.
Pole ArrayList v Jave
Array of ArrayList, ako už názov napovedá, pozostáva z ArrayLists ako jeho prvkov. Aj keď sa táto funkcia nepoužíva pravidelne, používa sa, keď je potrebné efektívne využitie pamäťového priestoru.
Nasledujúci program implementuje Array of ArrayLists v Jave.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //define and initialize a num_list List num_list = new ArrayList(); num_list.add('One'); num_list.add('Two'); num_list.add('Two'); //define and initialize a colors_list List colors_list = new ArrayList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); //define Array of ArrayList with two elements List() arrayOfArrayList = new List(2); //add num_list as first element arrayOfArrayList(0) = num_list; //add colors_list as second element arrayOfArrayList(1) = colors_list; //print the contents of Array of ArrayList System.out.println('Contents of Array of ArrayList:'); for (int i = 0; i Výkon:
Obsah Array of ArrayList:
(Jeden, dva, dva)
(Červená, zelená, modrá)

Vo vyššie uvedenom programe najskôr definujeme dva zoznamy. Potom deklarujeme pole dvoch ArrayList. Každý prvok tohto poľa je ArrayList definovaný skôr. Nakoniec sa obsah poľa ArrayList zobrazí pomocou slučky for.
Zoznam polí v Jave
Rovnako ako máme Array of ArrayLists, môžeme mať aj ArrayList of Arrays. Tu je každý jednotlivý prvok poľa ArrayList.
Nasledujúci program demonštruje ArrayList of Arrays.
import java.util.*; public class Main { public static void main(String() args) { // declare ArrayList of String arrays ArrayList ArrayList_Of_Arrays = new ArrayList(); //define individual string arrays String() colors = { 'Red', 'Green', 'Blue' }; String() cities = { 'Pune', 'Mumbai', 'Delhi'}; //add each array as element to ArrayList ArrayList_Of_Arrays.add(colors); ArrayList_Of_Arrays.add(cities); // print ArrayList of Arrays System.out.println('Contents of ArrayList of Arrays:'); for (String() strArr : ArrayList_Of_Arrays) { System.out.println(Arrays.toString(strArr)); } } }
Výkon:
Obsah ArrayList of Arrays:
(Červená, zelená, modrá)
(Pune, Bombaj, Dillí)

Vyššie uvedený program demonštruje ArrayList of Arrays. Spočiatku deklarujeme ArrayList reťazcových polí. To znamená, že každý prvok ArrayList bude String Array. Ďalej definujeme dva reťazcové polia. Potom je každé z polí pridané do ArrayList. Nakoniec vytlačíme obsah ArrayList of Arrays.
Na vytlačenie obsahu prechádzame ArrayList pomocou slučky for. Pre každú iteráciu vytlačíme obsah prvku ArrayList, ktorý má pole pomocou metódy Arrays.toString ().
Zoznam Vs ArrayList v Jave
V nasledujúcich tabuľkách sú uvedené niektoré rozdiely medzi zoznamom a zoznamom polí.
Zoznam ArrayList Zoznam predstavuje rozhranie v prostredí Java ArrayList je súčasťou rámca Java Collection Zoznam je implementovaný ako rozhranie ArrayList je implementovaný ako trieda kolekcie Rozširuje rozhranie pre zber implementuje rozhranie zoznamu a rozširuje AbstractList Súčasťou System.Collection.generic menného priestoru Súčasťou priestoru názvov System.Collections Pomocou Zoznamu je možné vytvoriť zoznam prvkov, ku ktorým je možné pristupovať pomocou indexov. Pomocou ArrayList môžeme vytvoriť dynamické pole prvkov alebo objektov, ktorých veľkosť sa automaticky mení so zmenami v obsahu.
Vektor Vs ArrayList
Ďalej uvádzame niektoré z rozdielov medzi vektorom a zoznamom polí.
ArrayList LinkedList ArrayList implementuje rozhranie zoznamu LinkedList implementuje rozhrania List a Deque. Ukladanie dát a prístup k nim je v ArrayList efektívny. LinkedList je dobrý pri manipulácii s údajmi. ArrayList interne implementuje dynamické pole. LinkedList interne implementuje dvojnásobne prepojený zoznam. Pretože ArrayList interne implementuje dynamické pole, pridávanie / mazanie prvkov je pomalé, pretože je potrebné veľa posúvania bitov. LinkedList je rýchlejší, čo sa týka pridávania / odstraňovania prvkov, pretože nie je potrebné nijaké posúvanie bitov. Menej réžie pamäte, pretože v ArrayList sú uložené iba skutočné údaje. Väčšia réžia pamäte, pretože každý uzol v zozname LinkedList obsahuje údaje a adresu nasledujúceho uzla.
ArrayList vs LinkedList
Poďme teraz diskutovať o rôznych rozdieloch medzi zoznamom ArrayList a LinkedList.
ArrayList LinkedList ArrayList implementuje rozhranie zoznamu LinkedList implementuje rozhrania List a Deque. Ukladanie dát a prístup k nim je v ArrayList efektívny. LinkedList je dobrý pri manipulácii s údajmi. ArrayList interne implementuje dynamické pole. LinkedList interne implementuje dvojnásobne prepojený zoznam. Pretože ArrayList interne implementuje dynamické pole, pridávanie / mazanie prvkov je pomalé, pretože je potrebné veľa posúvania bitov. LinkedList je rýchlejší, čo sa týka pridávania / odstraňovania prvkov, pretože nie je potrebné nijaké posúvanie bitov. Menej réžie pamäte, pretože v ArrayList sú uložené iba skutočné údaje. Väčšia réžia pamäte, pretože každý uzol v zozname LinkedList obsahuje údaje a adresu nasledujúceho uzla.
často kladené otázky
Otázka č. 1) Ako prevádzate ArrayList na Array v Jave?
Odpoveď: Ak chcete previesť ArrayList na Array v Jave, môžete použiť metódu toArray () z ArrayList API, ktorá prevádza daný ArrayList na Array.
Otázka č. 2) Ako rozdelíte reťazec a uložíte ho do ArrayList v Jave?
Odpoveď: Reťazec je rozdelený pomocou funkcie split (). Táto metóda vráti pole reťazcov. Potom pomocou metódy Arrays.asList () možno pole reťazcov previesť na ArrayList reťazcov.
Otázka č. 3) Aká je predvolená veľkosť poľa ArrayList?
Odpoveď: Objekt ArrayList vytvorený bez určenia kapacity má veľkosť 0, pretože do zoznamu nie sú pridané žiadne prvky. Ale predvolená kapacita tohto ArrayList je 10.
Otázka č. 4) Aký je rozdiel medzi dĺžkou () a veľkosťou) v ArrayList?
Odpoveď: Zoznam ArrayList nemá vlastnosť ani metódu length (). Poskytuje iba metódu size (), ktorá vracia celkový počet prvkov v zozname ArrayList.
Otázka 5) Aký je rozdiel medzi kapacitou a veľkosťou ArrayList?
Odpoveď: ArrayList má kapacitu aj veľkosť. Kapacita je celková veľkosť ArrayList alebo celkový počet prvkov, ktoré obsahuje. Veľkosť je počet prvkov alebo umiestnení, ktoré obsahujú údaje.
Napríklad, ak je kapacita ArrayList 10 a jej veľkosť je 5, znamená to, že ArrayList môže obsahovať až 10 prvkov, ale v súčasnosti má iba 5 miest v sebe dáta.
Záver
V tomto tutoriáli sme diskutovali o niektorých ďalších konceptoch týkajúcich sa ArrayList, ako je napríklad konverzia ArrayList na reťazec, zoznam, množinu a naopak. Diskutovali sme tiež o rozdieloch medzi ArrayList a Vector, ArrayList a LinkedList atď.
V našom pripravovanom výučbe sa chopíme ďalšej zbierky a dôkladne sa ju naučíme.
=> Tu nájdete A-Z výučbových kurzov Java.
Odporúčané čítanie
- Výukový program Java String s programom String Buffer a String Builder
- Java ArrayList - Ako deklarovať, inicializovať a vytlačiť zoznam ArrayList
- Výukový program Java Reflection s príkladmi
- Výukový program pre Java String Metódy reťazca Java s príkladmi
- Vlákna Java s metódami a životným cyklom
- Nasadenie Java: Vytvorenie a vykonanie súboru Java JAR
- Základy jazyka Java: Java Syntax, trieda Java a základné koncepty Java
- Virtuálny stroj Java: Ako JVM pomáha pri spúšťaní aplikácií Java