java arraylist conversions other collections
Tento výukový program pojednává o převodech ArrayList na jiné kolekce, jako je sada, LinkedList, seznamy atd., Spolu s rozdíly mezi těmito kolekcemi:
Zatím jsme viděli téměř všechny koncepty související s ArrayList v Javě. Kromě vytváření a manipulace s ArrayList pomocí různých operací nebo metod poskytovaných třídou ArrayList je někdy také nutné převést ArrayList do jedné nebo více kolekcí.
=> Navštivte zde a dozvíte se Java od začátku.
V tomto kurzu probereme některé převody z ArrayList do jiných kolekcí, které zahrnují List, LinkedList, Vector, Set atd. Zvažujeme také převod mezi ArrayList a String. Po konverzích budeme také diskutovat o rozdílech mezi ArrayLists a jinými kolekcemi - pole, seznam, vektor, LinkedList atd.
Co se naučíte:
- ArrayList na převod řetězce
- Převod řetězce na ArrayList
- Převést seznam na ArrayList v Javě
- Převést ArrayList na nastavení v Javě
- Převést sadu na ArrayList v Javě
- Pole ArrayList v Javě
- ArrayList polí v Javě
- Seznam Vs ArrayList v Javě
- Vector Vs ArrayList
- ArrayList vs LinkedList
- Často kladené otázky
- Závěr
- Doporučené čtení
ArrayList na převod řetězce
Následující metody lze použít k převodu ArrayList na String.
# 1) Použití 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ýstup:
ArrayList: (Software, Testování, Nápověda)
Řetězec z ArrayList: Nápověda k testování softwaru
Ve výše uvedeném programu je vytvořen objekt StringBuilder. Potom pomocí smyčky forEach se každý prvek v ArrayList připojí k objektu StringBuilder. Potom je objekt StringBuilder převeden na řetězec. Všimněte si, že pomocí metody „append“ StringBuilder; k řetězci můžete také přidat vhodný oddělovač.
Ve výše uvedeném příkladu jsme jako oddělovač použili mezeru („“).
# 2) Použití metody String.join ()
Metodu String.join () lze použít k převodu ArrayList na String. Zde můžete také předat vhodný oddělovač metodě join.
Níže uvedený program to ukazuje.
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ýstup:
Seznam Array: (Dillí, Bombaj, Chennai, Kalkata)
Řetězec převedený z ArrayList: Delhi Mumbai Chennai Kalkata
Vidíte, že přímo předáváme ArrayList jako argument metodě String.join () spolu s oddělovačem.
Pro jednoduché String ArrayLists je String.join () nejlepší metoda pro převod na String. Ale pro složitější objekty ArrayLists je použití StringBuilder efektivnější.
Převod řetězce na ArrayList
Chcete-li převést řetězec na ArrayList, existují dva kroky:
- Řetězec je rozdělen pomocí funkce split () a podřetězce (rozděleny na vhodný oddělovač) jsou uloženy v řetězcovém poli.
- Řetězcové pole získané rozdělením řetězce je poté převedeno na ArrayList pomocí metody „asList ()“ třídy Arrays.
Níže je uveden program pro převod řetězce na ArrayList.
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ýstup:
Vstupní řetězec: Řetězec programu ArrayList
ArrayList z řetězce: (The, string, to, ArrayList, program)
Ve výše uvedeném programu rozdělíme řetězec na mezery a shromáždíme jej v řetězcovém poli. Toto pole je poté převedeno na ArrayList řetězců.
Převést seznam na ArrayList v Javě
ArrayList implementuje rozhraní seznamu. Pokud chcete převést seznam na jeho implementaci, jako je ArrayList, můžete to udělat pomocí metody addAll v rozhraní seznamu.
Níže uvedený program ukazuje převod seznamu na ArrayList přidáním všech prvků seznamu 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ýstup:
nastavit zatmění pro c ++
Obsah seznamu: (ArrayList, Vector, LinkedList, Stack, Set, Map)
ArrayList po přidání prvků: (ArrayList, Vector, LinkedList, Stack, Set, Map)
Převést ArrayList na nastavení v Javě
Následující metody převádějí ArrayList na Set.
# 1) Použití tradičního iterativního přístupu
Jedná se o tradiční přístup. Tady procházíme seznamem a přidáváme každý prvek ArrayList do sady.
V níže uvedeném programu máme ArrayList řetězce. Deklarujeme HashSet řetězce. Potom pomocí smyčky forEach provedeme iteraci přes ArrayList a přidáme každý prvek do HashSet.
Podobným způsobem můžeme také převést 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ýstup:
Seznam Array: (Červená, Zelená, Modrá, Azurová, Purpurová, Žlutá)
Sada HashSet získaná z ArrayList: (červená, azurová, modrá, žlutá, purpurová, zelená)
# 2) Použití konstruktoru sady
Další metoda pro převod ArrayList na sadu používá konstruktor. V této metodě předáme ArrayList jako argument konstruktoru množiny a inicializujeme tak objekt sady pomocí prvků ArrayList.
Níže uvedený program ukazuje použití ArrayList při vytváření objektu sady.
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ýstup:
ArrayList: (Červená, Zelená, Modrá, Azurová, Purpurová, Žlutá
Sada stromů získaná z ArrayList: (modrá, azurová, zelená, purpurová, červená, žlutá)
# 3) Použití metody addAll
Můžete také použít metodu addAll Set k přidání všech prvků ArrayList do sady.
Následující program používá metodu addAll k přidání prvků 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ýstup:
Seznam Array: (Červená, Zelená, Modrá, Azurová, Purpurová, Žlutá)
Sada HashSet získaná z ArrayList: (červená, azurová, modrá, žlutá, purpurová, zelená)
# 4) Používání Java 8 Stream
Proudy jsou nové přírůstky do prostředí Java 8. Tato třída proudu poskytuje metodu převodu ArrayList na proud a poté na nastavení.
Níže uvedený program Java demonstruje použití metody třídy proudu k převodu 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ýstup:
Seznam Array: (Červená, Zelená, Modrá, Azurová, Purpurová, Žlutá)
Sada získaná z ArrayList: (červená, azurová, modrá, žlutá, purpurová, zelená)
Převést sadu na ArrayList v Javě
V poslední části jsme viděli převod ArrayList na Set. Konverze z Set na ArrayList také používá stejné metody, jak je popsáno výše, s tím rozdílem, že se mění poloha sady a ArrayList.
Níže jsou uvedeny příklady programování pro převod Set na ArrayList. Další popis pro každou metodu zůstává stejný.
# 1) Iterativní pří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ýstup:
Daná sada: (jedna, dvě, tři)
Seznam polí získaný ze sady: (Jedna, Dvě, Tři)
Ve výše uvedeném programu procházíme Set a každý prvek sady je přidán do ArrayList.
# 2) Používání konstruktoru
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ýstup:
Daná sada: (jedna, dvě, tři)
Seznam polí získaný ze sady: (Jedna, Dvě, Tři)
Výše uvedený program vytvoří sadu a ArrayList. Objekt ArrayList je vytvořen poskytnutím objektu sady jako argumentu v jeho konstruktoru.
# 3) Použití metody 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ýstup:
Daná sada: (jedna, dvě, tři)
Seznam polí získaný ze sady: (Jedna, Dvě, Tři)
Zde používáme metodu addAll z ArrayList k přidání prvků ze sady do ArrayList.
# 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 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ýstup:
Daná sada: (jedna, dvě, tři)
Seznam polí získaný ze sady: (Jedna, Dvě, Tři)
Výše uvedený program používá třídu proudu k převodu Set na ArrayList.
Pole ArrayList v Javě
Array of ArrayList, jak název napovídá, se skládá z ArrayLists jako jeho prvků. Ačkoli se tato funkce nepoužívá pravidelně, používá se, když je vyžadováno efektivní využití paměťového prostoru.
Následující program implementuje Array of ArrayLists v Javě.
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ýstup:
Obsah Array of ArrayList:
(Jeden, dva, dva)
(Červená, Zelená, Modrá)

Ve výše uvedeném programu nejprve definujeme dva seznamy. Pak deklarujeme pole dvou ArrayList. Každý prvek tohoto pole je ArrayList definovaný dříve. Nakonec se obsah pole ArrayList zobrazí pomocí smyčky for.
ArrayList polí v Javě
Stejně jako máme Array of ArrayLists, můžeme mít i ArrayList of Arrays. Zde je každý jednotlivý prvek ArrayList pole.
Níže uvedený program ukazuje ArrayList of Arrays.
jakou e-mailovou službu mám použít
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ýstup:
Obsah ArrayList of Arrays:
(Červená, Zelená, Modrá)
(Pune, Bombaj, Dillí)

Výše uvedený program demonstruje ArrayList of Arrays. Zpočátku deklarujeme ArrayList řetězcových polí. To znamená, že každý prvek ArrayList bude String Array. Dále definujeme dvě řetězcová pole. Pak je každé z polí přidáno do ArrayList. Nakonec vytiskneme obsah ArrayList of Arrays.
Chcete-li tisknout obsah, procházíme ArrayList pomocí smyčky for. Pro každou iteraci vytiskneme obsah prvku ArrayList, který má pole pomocí metody Arrays.toString ().
Seznam Vs ArrayList v Javě
Následující tabulky ukazují některé rozdíly mezi List a ArrayList.
Seznam ArrayList Seznam je rozhraní v prostředí Java ArrayList je součástí rámce Java Collection Seznam je implementován jako rozhraní ArrayList je implementován jako třída kolekce Rozšiřuje rozhraní pro sběr implementuje rozhraní seznamu a rozšiřuje AbstractList Část System.Collection.generic oboru názvů Část oboru názvů System.Collections Pomocí Seznamu lze vytvořit seznam prvků, ke kterým lze přistupovat pomocí indexů. Pomocí ArrayList můžeme vytvořit dynamické pole prvků nebo objektů, jejichž velikost se automaticky mění se změnami obsahu.
Vector Vs ArrayList
Níže jsou uvedeny některé rozdíly mezi Vector a ArrayList.
ArrayList Spojový seznam ArrayList implementuje rozhraní seznamu LinkedList implementuje rozhraní List a Deque. Ukládání dat a přístup jsou v ArrayList efektivní. LinkedList je dobrý v manipulaci s daty. ArrayList interně implementuje dynamické pole. LinkedList interně implementuje dvojnásobně propojený seznam. Vzhledem k tomu, že ArrayList interně implementuje dynamické pole, přidávání / mazání prvků je pomalé, protože je vyžadováno hodně posunu bitů. LinkedList je rychlejší, pokud jde o přidávání / odebírání prvků, protože není nutné žádné posunutí bitů. Méně režie paměti, protože v ArrayList jsou uložena pouze skutečná data. Více režie paměti, protože každý uzel v LinkedList obsahuje data i adresu dalšího uzlu.
ArrayList vs LinkedList
Pojďme nyní diskutovat o různých rozdílech mezi ArrayList a LinkedList.
ArrayList Spojový seznam ArrayList implementuje rozhraní seznamu LinkedList implementuje rozhraní List a Deque. Ukládání dat a přístup jsou v ArrayList efektivní. LinkedList je dobrý v manipulaci s daty. ArrayList interně implementuje dynamické pole. LinkedList interně implementuje dvojnásobně propojený seznam. Vzhledem k tomu, že ArrayList interně implementuje dynamické pole, přidávání / mazání prvků je pomalé, protože je vyžadováno hodně posunu bitů. LinkedList je rychlejší, pokud jde o přidávání / odebírání prvků, protože není nutné žádné posunutí bitů. Méně režie paměti, protože v ArrayList jsou uložena pouze skutečná data. Více režie paměti, protože každý uzel v LinkedList obsahuje data i adresu dalšího uzlu.
Často kladené otázky
Otázka č. 1) Jak převádíte ArrayList na Array v Javě?
Odpovědět: Chcete-li převést ArrayList na Array v Javě, můžete použít metodu toArray () z ArrayList API, která převádí daný ArrayList na Array.
Otázka č. 2) Jak rozdělíte řetězec a uložíte jej do ArrayList v Javě?
Odpovědět: Řetězec je rozdělen pomocí funkce split (). Tato metoda vrací pole řetězců. Potom pomocí metody Arrays.asList () lze řetězcové pole převést na ArrayList řetězců.
Otázka č. 3) Jaká je výchozí velikost seznamu ArrayList?
Odpovědět: Objekt ArrayList vytvořený bez určení kapacity má velikost 0, protože do seznamu nejsou přidány žádné prvky. Ale výchozí kapacita tohoto ArrayList je 10.
Otázka č. 4) Jaký je rozdíl mezi délkou () a velikostí () ArrayList?
Odpovědět: ArrayList nemá vlastnost nebo metodu length (). Poskytuje pouze metodu size (), která vrací celkový počet prvků v ArrayList.
Otázka č. 5) Jaký je rozdíl mezi kapacitou a velikostí ArrayList?
Odpovědět: ArrayList má kapacitu i velikost. Kapacita je celková velikost ArrayList nebo celkový počet prvků, které může obsahovat. Velikost je počet prvků nebo umístění, které obsahují data.
Například, Pokud je kapacita ArrayList 10 a její velikost je 5, znamená to, že ArrayList může obsahovat až 10 prvků, ale v současné době je v nich pouze 5 míst.
Závěr
V tomto kurzu jsme diskutovali o některých dalších koncepcích souvisejících s ArrayList, jako je převod ArrayList na řetězec, seznam, sadu a naopak. Také jsme diskutovali o rozdílech mezi ArrayList a Vector, ArrayList a LinkedList atd.
V našem nadcházejícím tutoriálu pojmeme další kolekci a důkladně se ji naučíme.
=> Chcete-li vidět A-Z výukových kurzů Java zde, podívejte se sem.
Doporučené čtení
- Výukový program Java String s funkcí String Buffer a String Builder
- Java ArrayList - Jak deklarovat, inicializovat a vytisknout seznam ArrayList
- Výukový program Java Reflection s příklady
- Výukový program Java String | Metody řetězců Java s příklady
- Java vlákna s metodami a životním cyklem
- Implementace Java: Vytvoření a spuštění souboru Java JAR
- Základy jazyka Java: Java Syntax, třída Java a základní koncepty Java
- Virtuální stroj Java: Jak JVM pomáhá při spouštění aplikace Java