java arraylist conversions other collections
Denna handledning diskuterar ArrayList-konverteringar till andra samlingar som Set, LinkedList, Lists etc. tillsammans med skillnader mellan dessa samlingar:
Hittills har vi sett nästan alla begrepp relaterade till ArrayList i Java. Förutom att skapa och manipulera ArrayList med olika operationer eller metoder som tillhandahålls av ArrayList-klassen, krävs ibland också att konvertera ArrayList till en eller flera samlingar.
=> Besök här för att lära dig Java från Scratch.
I denna handledning kommer vi att diskutera några av konverteringarna från ArrayList till andra samlingar som inkluderar List, LinkedList, Vector, Set, etc. Vi överväger också konvertering mellan ArrayList och String. Efter konverteringar kommer vi också att diskutera skillnaderna mellan ArrayLists och andra samlingar - Arrays, List, Vector, LinkedList, etc.
Vad du kommer att lära dig:
- ArrayList till strängkonvertering
- String To ArrayList Conversion
- Konvertera lista till ArrayList i Java
- Konvertera ArrayList för att ställa in i Java
- Konvertera Set till ArrayList i Java
- En matris av ArrayList i Java
- ArrayList of Arrays In Java
- Lista mot ArrayList i Java
- Vector mot ArrayList
- ArrayList vs LinkedList
- Vanliga frågor
- Slutsats
- Rekommenderad läsning
ArrayList till strängkonvertering
Följande metoder kan användas för att konvertera ArrayList till String.
# 1) Använda ett StringBuilder-objekt
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); } }
Produktion:
ArrayList: (Programvara, testning, hjälp)
String from ArrayList: Software Testing Help
I programmet ovan skapas ett StringBuilder-objekt. Använd sedan forEach-slingan och varje element i ArrayList läggs till i StringBuilder-objektet. Sedan konverteras StringBuilder-objektet till en sträng. Observera att du använder StringBuilder 'append' -metoden; Du kan också lägga till lämplig avgränsare till strängen.
I exemplet ovan har vi använt space (““) som avgränsare.
# 2) Använda String.join () -metoden
Metoden String.join () kan användas för att konvertera ArrayList till String. Här kan du också skicka lämplig avgränsare till anslutningsmetoden.
Programmet nedan visar detta.
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); } }
Produktion:
ArrayList: (Delhi, Mumbai, Chennai, Kolkata)
Sträng konverterad från ArrayList: Delhi Mumbai Chennai Kolkata
Du kan se att vi direkt skickar ArrayList som ett argument till String.join () -metoden tillsammans med avgränsaren.
För enkla String ArrayLists är String.join () den bästa metoden att konvertera till String. Men för mer komplexa ArrayLists-objekt är det effektivare att använda StringBuilder.
String To ArrayList Conversion
För att konvertera en sträng till ArrayList finns det två steg:
- Strängen delas med funktionen split () och delsträngarna (delas på lämplig avgränsare) lagras i en strängmatris.
- Strängmatrisen som erhållits från att dela strängen konverteras sedan till ArrayList med metoden 'asList ()' i Arrays-klassen.
Programmet för att konvertera sträng till ArrayList ges nedan.
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 ); } }
Produktion:
Inmatningssträngen: Strängen till ArrayList-programmet
The ArrayList from String: (The, string, to, ArrayList, program)
I ovanstående program delar vi strängen i mellanslag och samlar den i en strängmatris. Denna array konverteras sedan till en ArrayList of strings.
Konvertera lista till ArrayList i Java
ArrayList implementerar listgränssnittet. Om du vill konvertera en lista till dess implementering som ArrayList, kan du göra det med metoden addAll i listgränssnittet.
skillnad i c och c ++
Programmet nedan visar konverteringen av listan till ArrayList genom att lägga till alla listelement i 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); } }
Produktion:
Listinnehåll: (ArrayList, Vector, LinkedList, Stack, Set, Map)
ArrayList efter att ha lagt till element: (ArrayList, Vector, LinkedList, Stack, Set, Map)
Konvertera ArrayList för att ställa in i Java
Följande metoder konverterar en ArrayList till en uppsättning.
# 1) Med en traditionell iterativ metod
Detta är den traditionella metoden. Här går vi igenom listan och lägger till varje element i ArrayList i uppsättningen.
I programmet nedan har vi en ArrayList av sträng. Vi förklarar en HashSet av sträng. Sedan använder vi forEach-slingan, och vi itererar över ArrayList och lägger till varje element i HashSet.
På ett liknande sätt kan vi också konvertera ArrayList till en 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); } }
Produktion:
ArrayList: (Röd, grön, blå, cyan, magenta, gul)
HashSet erhållet från ArrayList: (Röd, Cyan, Blå, Gul, Magenta, Grön)
# 2) Använda Set Constructor
Nästa metod för att konvertera en ArrayList till en uppsättning använder konstruktören. I den här metoden skickar vi ArrayList som ett argument till uppsättningskonstruktören och initierar därmed uppsättningsobjektet med ArrayList-element.
Programmet nedan visar användningen av ArrayList för att skapa ett uppsatt objekt.
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); } }
Produktion:
ArrayList: (Röd, grön, blå, cyan, magenta, gul
TreeSet erhållen från ArrayList: (Blå, Cyan, Grön, Magenta, Röd, Gul)
# 3) Använda metoden AddAll
Du kan också använda metoden addAll för att lägga till alla element i ArrayList till uppsättningen.
Följande program använder metoden addAll för att lägga till elementen i ArrayList till 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); } }
Produktion:
ArrayList: (Röd, grön, blå, cyan, magenta, gul)
HashSet erhållet från ArrayList: (Röd, Cyan, Blå, Gul, Magenta, Grön)
# 4) Använda Java 8 Stream
Strömmar är de nya tilläggen till Java 8. Denna strömklass ger en metod för att konvertera ArrayList till ström och sedan ställa in.
Java-programmet nedan visar användningen av stream class-metoden för att konvertera ArrayList till set.
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); } }
Produktion:
ArrayList: (Röd, grön, blå, cyan, magenta, gul)
Set erhållet från ArrayList: (Röd, Cyan, Blå, Gul, Magenta, Grön)
Konvertera Set till ArrayList i Java
I det sista avsnittet har vi sett omvandlingen av ArrayList till Set. Omvandlingen från Set till ArrayList använder också samma metoder som beskrivs ovan med skillnaden att uppsättningen och ArrayList ändras.
Nedan finns programmeringsexempel för att konvertera Set till ArrayList. Den andra beskrivningen för varje metod förblir densamma.
# 1) Iterativ strategi
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); } }
Produktion:
Den givna uppsättningen: (One, Two, Three)
ArrayList erhållen från Set: (One, Two, Three)
I ovanstående program, itererar vi genom Set och varje set-element läggs till i ArrayList.
# 2) Använda Constructor
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); } }
Produktion:
Den givna uppsättningen: (One, Two, Three)
ArrayList erhållen från Set: (One, Two, Three)
Ovanstående program skapar en uppsättning och en ArrayList. ArrayList-objektet skapas genom att tillhandahålla ett uppsatt objekt som ett argument i dess konstruktör.
# 3) Använda metoden 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); } }
Produktion:
Den givna uppsättningen: (One, Two, Three)
ArrayList erhållen från Set: (One, Two, Three)
Här använder vi metoden addAll för ArrayList för att lägga till elementen från uppsättningen till ArrayList.
# 4) Använda 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); } }
Produktion:
Den givna uppsättningen: (One, Two, Three)
ArrayList erhållen från Set: (One, Two, Three)
Ovanstående program använder strömklass för att konvertera Set till ArrayList.
En matris av ArrayList i Java
En Array of ArrayList som namnet antyder består av ArrayLists som dess element. Även om funktionen inte används regelbundet, används den när effektiv användning av minnesutrymme är ett krav.
Följande program implementerar en Array of ArrayLists i Java.
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 Produktion:
Innehållet i Array of ArrayList:
(En, två, två)
(Röd, grön, blå)

I ovanstående program definierar vi först två listor. Sedan förklarar vi en Array of two ArrayList. Varje element i denna array är den ArrayList som definierats tidigare. Slutligen visas innehållet i en Array of ArrayList med en for-loop.
ArrayList of Arrays In Java
Precis som vi har en ArrayList, kan vi också ha ArrayList of Arrays. Här är varje enskilt element i en ArrayList en Array.
Nedanstående program visar 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)); } } }
Produktion:
Innehåll i ArrayList of Arrays:
(Röd, grön, blå)
(Pune, Mumbai, Delhi)

Ovanstående program visar ArrayList of Arrays. Inledningsvis förklarar vi en ArrayList of String Arrays. Detta innebär att varje element i ArrayList kommer att vara en strängmatris. Därefter definierar vi två strängarrayer. Sedan läggs var och en av Arrays till i ArrayList. Slutligen skriver vi ut innehållet i ArrayList of Arrays.
För att skriva ut innehållet passerar vi ArrayList med hjälp av for loop. För varje iteration skriver vi ut innehållet i ArrayList-elementet som har en Array med metoden Arrays.toString ().
Lista mot ArrayList i Java
Följande tabeller visar några av skillnaderna mellan en List och ArrayList.
Lista ArrayList Listan är ett gränssnitt i Java ArrayList är en del av Java Collection-ramverket Listan implementeras som ett gränssnitt ArrayList implementeras som en insamlingsklass Utökar samlingsgränssnittet implementerar Listgränssnitt och utökar AbstractList Del av System.Collection.generic namespace En del av System.Collections namnområde Med hjälp av List kan en lista med element skapas som kan nås med hjälp av index. Med hjälp av ArrayList kan vi skapa en dynamisk array med element eller objekt vars storlek automatiskt ändras med innehållsförändringarna.
Vector mot ArrayList
Nedan följer några av skillnaderna mellan en Vector och en ArrayList.
ArrayList Länkad lista ArrayList implementerar Listgränssnitt LinkedList implementerar gränssnitt för lista och Deque. Datalagring och åtkomst är effektiva i ArrayList. LinkedList är bra på att manipulera data. ArrayList implementerar internt en dynamisk matris. LinkedList implementerar internt en dubbelt länkad lista. Eftersom ArrayList internt implementerar dynamisk array är tillägg / radering av element långsam eftersom mycket bitförskjutning krävs. LinkedList är snabbare när det gäller tillägg / borttagning av element eftersom det inte är nödvändigt med bitförskjutning. Mindre minnesomkostnader eftersom i ArrayList endast faktiska data lagras. Mer minne över huvudet eftersom varje nod i LinkedList innehåller data samt adressen till nästa nod.
ArrayList vs LinkedList
Låt oss nu diskutera de olika skillnaderna mellan en ArrayList och en LinkedList.
ArrayList Länkad lista ArrayList implementerar Listgränssnitt LinkedList implementerar gränssnitt för lista och Deque. Datalagring och åtkomst är effektiva i ArrayList. LinkedList är bra på att manipulera data. ArrayList implementerar internt en dynamisk matris. LinkedList implementerar internt en dubbelt länkad lista. Eftersom ArrayList internt implementerar dynamisk array är tillägg / radering av element långsam eftersom mycket bitförskjutning krävs. LinkedList är snabbare när det gäller tillägg / borttagning av element eftersom det inte är nödvändigt med bitförskjutning. Mindre minnesomkostnader eftersom i ArrayList endast faktiska data lagras. Mer minne över huvudet eftersom varje nod i LinkedList innehåller data samt adressen till nästa nod.
Vanliga frågor
F # 1) Hur konverterar du en ArrayList till en Array i Java?
Svar: För att konvertera en ArrayList till en Array i Java kan man använda metoden toArray () från ArrayList API som konverterar en given ArrayList till en Array.
F # 2) Hur delar du en sträng och lagrar den i en ArrayList i Java?
Svar: Strängen delas med hjälp av en split () -funktion. Denna metod returnerar en rad strängar. Sedan använder du Arrays.asList () -metoden, kan strängmatrisen konverteras till en ArrayList av strängar.
F # 3) Vad är standardstorleken för en ArrayList?
Svar: Ett ArrayList-objekt skapat utan att specificera kapaciteten har storlek 0 eftersom det inte finns några element som läggs till i listan. Men standardkapaciteten för denna ArrayList är 10.
F # 4) Vad är skillnaden mellan längd () och storlek () på ArrayList?
Svar: En ArrayList har inte en egenskap eller metod för längd (). Det ger bara storleken () -metoden som returnerar det totala antalet element i ArrayList.
F # 5) Vad är skillnaden mellan ArrayLists kapacitet och storlek?
Svar: ArrayList har både kapacitet och storlek. Kapacitet är den totala storleken på ArrayList eller det totala antalet element som den kan innehålla. Storlek är antalet element eller platser som har data i sig.
Till exempel, om ArrayList-kapaciteten är 10 och dess storlek är 5 betyder det att en ArrayList kan rymma upp till 10 element, men för närvarande har bara 5 platser data i sig.
Slutsats
I denna handledning diskuterade vi några av de ytterligare begreppen relaterade till ArrayList som att konvertera ArrayList till en sträng, lista, uppsättning och vice versa. Vi diskuterade också skillnaderna mellan ArrayList och Vector, ArrayList och LinkedList, etc.
I vår kommande handledning tar vi upp en annan samling och lär oss den grundligt.
=> Kolla här för att se A-Z av Java-utbildningar här.
Rekommenderad läsning
- Java String med String Buffer och String Builder Tutorial
- Java ArrayList - Hur man deklarerar, initialiserar och skriver ut en ArrayList
- Java Reflection Tutorial med exempel
- Java String Tutorial | Java-strängmetoder med exempel
- Java-trådar med metoder och livscykel
- Java-distribution: Skapande och utförande av Java JAR-fil
- Java Basics: Java Syntax, Java Class och Core Java Concepts
- Java Virtual Machine: Hur JVM hjälper till att köra Java-applikationen