java arraylist conversions other collections
Denne vejledning diskuterer ArrayList-konverteringer til andre samlinger som Set, LinkedList, Lists osv. Sammen med forskelle mellem disse samlinger:
Indtil videre har vi set næsten alle begreber relateret til ArrayList i Java. Bortset fra at oprette og manipulere ArrayList ved hjælp af forskellige operationer eller metoder leveret af ArrayList-klassen, er det undertiden også nødvendigt at konvertere ArrayList til en eller flere samlinger.
=> Besøg her for at lære Java fra bunden.
I denne vejledning diskuterer vi nogle af konverteringerne fra ArrayList til andre samlinger, der inkluderer List, LinkedList, Vector, Set osv. Vi overvejer også konvertering mellem ArrayList og String. Efter konverteringer vil vi også diskutere forskellene mellem ArrayLists og andre samlinger - Arrays, List, Vector, LinkedList osv.
Hvad du lærer:
- ArrayList til strengkonvertering
- String To ArrayList Conversion
- Konverter liste til ArrayList i Java
- Konverter ArrayList for at indstille i Java
- Konverter sæt til ArrayList i Java
- En matrix med ArrayList i Java
- ArrayList Of Arrays In Java
- Liste over ArrayList i Java
- Vector mod ArrayList
- ArrayList vs LinkedList
- Ofte stillede spørgsmål
- Konklusion
- Anbefalet læsning
ArrayList til strengkonvertering
Følgende metoder kan bruges til at konvertere ArrayList til String.
# 1) Brug af et 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: (Software, test, hjælp)
String fra ArrayList: Software Testing Help
I ovenstående program oprettes et StringBuilder-objekt. Ved hjælp af forEach-sløjfen føjes hvert element i ArrayList til StringBuilder-objektet. Derefter konverteres StringBuilder-objektet til en streng. Bemærk, at ved hjælp af StringBuilder 'tilføj' -metoden; du kan også føje passende afgrænser til strengen.
I ovenstående eksempel har vi brugt space (““) som afgrænser.
# 2) Brug af String.join () -metoden
Metoden String.join () kan bruges til at konvertere ArrayList til String. Her kan du også videregive passende afgrænser til tilslutningsmetoden.
Programmet nedenfor viser dette.
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:
ArrayListen: (Delhi, Mumbai, Chennai, Kolkata)
Streng konverteret fra ArrayList: Delhi Mumbai Chennai Kolkata
Du kan se, at vi direkte sender ArrayList som et argument til String.join () -metoden sammen med afgrænseren.
For enkle String ArrayLists er String.join () den bedste metode til at konvertere til String. Men for mere komplekse ArrayLists-objekter er det mere effektivt at bruge StringBuilder.
String To ArrayList Conversion
For at konvertere en streng til ArrayList er der to trin:
- Strengen deles ved hjælp af funktionen split (), og understrengene (opdelt på passende afgrænser) lagres i et strengarray.
- Strengarrayet, der opnås ved at opdele strengen, konverteres derefter til ArrayList ved hjælp af 'asList ()' - metoden i Arrays-klassen.
Programmet til at konvertere streng til ArrayList er angivet nedenfor.
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:
Inputstrengen: Strengen til ArrayList-programmet
ArrayList fra String: (The, string, to, ArrayList, program)
I ovenstående program opdeler vi strengen i mellemrum og samler den i en strengarray. Denne matrix konverteres derefter til en ArrayList af strenge.
Konverter liste til ArrayList i Java
ArrayList implementerer List-grænsefladen. Hvis du vil konvertere en liste til dens implementering som ArrayList, kan du gøre det ved hjælp af addAll-metoden i List-grænsefladen.
Programmet nedenfor viser konvertering af listen til ArrayList ved at tilføje alle listeelementerne til 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:
Listeindhold: (ArrayList, Vector, LinkedList, Stack, Set, Map)
ArrayList efter tilføjelse af elementer: (ArrayList, Vector, LinkedList, Stack, Set, Map)
Konverter ArrayList for at indstille i Java
Følgende metoder konverterer en ArrayList til et sæt.
# 1) Brug af en traditionel iterativ tilgang
Dette er den traditionelle tilgang. Her gentager vi listen og tilføjer hvert element i ArrayList til sættet.
I nedenstående program har vi en ArrayList af streng. Vi erklærer et HashSet af streng. Derefter gentager vi ArrayList ved hjælp af forEach-sløjfen og tilføjer hvert element til HashSet.
På en lignende måde kan vi også konvertere ArrayList til et 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 fås fra ArrayList: (Rød, Cyan, Blå, Gul, Magenta, Grøn)
# 2) Brug af Set Constructor
Den næste metode til at konvertere en ArrayList til et sæt er at bruge konstruktøren. I denne metode sender vi ArrayList som et argument til sætkonstruktøren og initialiserer således det indstillede objekt med ArrayList-elementer.
Programmet nedenfor viser brugen af ArrayList til oprettelse af et sæt 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 fås fra ArrayList: (Blå, Cyan, Grøn, Magenta, Rød, Gul)
# 3) Brug af AddAll-metoden
Du kan også bruge addAll-metoden i Set til at føje alle elementerne i ArrayList til sættet.
Det følgende program bruger addAll-metoden til at føje elementerne i ArrayList til 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 fås fra ArrayList: (Rød, Cyan, Blå, Gul, Magenta, Grøn)
# 4) Brug af Java 8 Stream
Streams er de nye tilføjelser til Java 8. Denne stream-klasse giver en metode til at konvertere ArrayList til stream og derefter indstille.
Java-programmet nedenfor viser brugen af streamklasse-metoden til at konvertere ArrayList til sæt.
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)
Sæt hentet fra ArrayList: (Rød, Cyan, Blå, Gul, Magenta, Grøn)
html interview spørgsmål og svar til erfarne
Konverter sæt til ArrayList i Java
I det sidste afsnit har vi set konverteringen af ArrayList til Set. Konverteringen fra Set til ArrayList bruger også de samme metoder som beskrevet ovenfor med den forskel, at sætets position og ArrayList ændres.
Nedenfor er programmeringseksempler til konvertering af Set til ArrayList. Den anden beskrivelse for hver metode forbliver den samme.
# 1) Iterativ tilgang
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:
Det givne sæt: (Et, To, Tre)
ArrayList opnået fra Set: (One, Two, Three)
I ovenstående program gentages vi gennem sættet, og hvert sætelement føjes til ArrayList.
# 2) Brug af 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:
Det givne sæt: (Et, To, Tre)
ArrayList opnået fra Set: (One, Two, Three)
Ovenstående program opretter et sæt og en ArrayList. ArrayList-objektet oprettes ved at angive et sæt objekt som et argument i dets konstruktør.
# 3) Brug af AddAll-metoden
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:
Det givne sæt: (Et, To, Tre)
ArrayList opnået fra Set: (One, Two, Three)
Her bruger vi addAll-metoden i ArrayList til at tilføje elementerne fra sættet til ArrayList.
# 4) Brug af 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:
Det givne sæt: (Et, To, Tre)
ArrayList opnået fra Set: (One, Two, Three)
Ovenstående program bruger streamklasse til at konvertere Set til ArrayList.
En matrix med ArrayList i Java
En Array of ArrayList, som navnet antyder, består af ArrayLists som dens elementer. Selvom funktionen ikke bruges regelmæssigt, bruges den, når effektiv brug af hukommelsesplads er et krav.
Følgende program implementerer 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:
Indhold i Array of ArrayList:
(En, to, to)
(Rød, grøn, blå)

I ovenstående program definerer vi først to lister. Derefter erklærer vi en Array of two ArrayList. Hvert element i denne matrix er ArrayList defineret tidligere. Endelig vises indholdet af en Array of ArrayList ved hjælp af en for-loop.
ArrayList Of Arrays In Java
Ligesom vi har en matrix med ArrayLists, kan vi også have ArrayList of Arrays. Her er hvert enkelt element i en ArrayList en Array.
Nedenstående program demonstrerer 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:
Indhold i ArrayList of Arrays:
(Rød, grøn, blå)
(Pune, Mumbai, Delhi)

Ovenstående program demonstrerer ArrayList of Arrays. Oprindeligt erklærer vi en ArrayList of String Arrays. Dette betyder, at hvert element i ArrayList vil være en strengarray. Dernæst definerer vi to strengarrays. Derefter føjes hver af Arrays til ArrayList. Endelig udskriver vi indholdet af ArrayList of Arrays.
For at udskrive indholdet krydser vi ArrayList ved hjælp af for loop. For hver iteration udskriver vi indholdet af ArrayList-elementet, der har en Array ved hjælp af Arrays.toString () -metoden.
Liste over ArrayList i Java
Følgende tabeller viser nogle af forskellene mellem en liste og en ArrayList.
Liste ArrayList Listen er en grænseflade i Java ArrayList er en del af Java Collection-rammen Listen er implementeret som en grænseflade ArrayList implementeres som en samlingsklasse Udvider indsamlingsgrænsefladen implementerer List interface og udvider AbstractList En del af System.Collection.generic navneområde En del af System.Collections navneområde Ved hjælp af Liste kan der oprettes en liste med elementer, som kan tilgås ved hjælp af indekser. Ved hjælp af ArrayList kan vi oprette en dynamisk matrix af elementer eller objekter, hvis størrelse automatisk ændres med ændringerne i indholdet.
Vector mod ArrayList
Nedenfor er nogle af forskellene mellem en Vector og en ArrayList.
ArrayList LinkedList ArrayList implementerer listen interface LinkedList implementerer liste- og Deque-grænseflader. Datalagring og adgang er effektiv i ArrayList. LinkedList er god til at manipulere data. ArrayList implementerer internt et dynamisk array. LinkedList implementerer internt en dobbeltkoblet liste. Da ArrayList internt implementerer dynamisk array, er tilføjelsen / sletningen af elementer langsom, da der kræves meget bitforskydning. LinkedList er hurtigere for så vidt angår tilføjelse / fjernelse af elementer, da det ikke er nødvendigt at skifte bit. Mindre hukommelsesomkostninger, da der i ArrayList kun gemmes faktiske data. Mere hukommelsesomkostninger, da hver node i LinkedList indeholder data såvel som adressen til den næste node.
ArrayList vs LinkedList
Lad os nu diskutere de forskellige forskelle mellem en ArrayList og en LinkedList.
ArrayList LinkedList ArrayList implementerer listen interface LinkedList implementerer liste- og Deque-grænseflader. Datalagring og adgang er effektiv i ArrayList. LinkedList er god til at manipulere data. ArrayList implementerer internt et dynamisk array. LinkedList implementerer internt en dobbeltkoblet liste. Da ArrayList internt implementerer dynamisk array, er tilføjelsen / sletningen af elementer langsom, da der kræves meget bitforskydning. LinkedList er hurtigere for så vidt angår tilføjelse / fjernelse af elementer, da det ikke er nødvendigt at skifte bit. Mindre hukommelsesomkostninger, da der i ArrayList kun gemmes faktiske data. Mere hukommelsesomkostninger, da hver node i LinkedList indeholder data såvel som adressen til den næste node.
Ofte stillede spørgsmål
Q # 1) Hvordan konverterer du en ArrayList til en Array i Java?
Svar: For at konvertere en ArrayList til en Array i Java kan man bruge metoden toArray () fra ArrayList API, der konverterer en given ArrayList til en Array.
Q # 2) Hvordan opdeler du en streng og gemmer den i en ArrayList i Java?
Svar: Strengen deles ved hjælp af en split () -funktion. Denne metode returnerer en række strenge. Derefter kan string arrayet konverteres til en ArrayList of strings ved hjælp af Arrays.asList () -metoden.
Q # 3) Hvad er standardstørrelsen på en ArrayList?
Svar: Et ArrayList-objekt oprettet uden at angive kapaciteten har størrelse 0, da der ikke er nogen elementer tilføjet til listen. Men standardkapaciteten for denne ArrayList er 10.
Spørgsmål nr. 4) Hvad er forskellen mellem længden () og størrelsen () af ArrayList?
Svar: En ArrayList har ikke en længde () egenskab eller metode. Det giver kun størrelsesmetoden (), der returnerer det samlede antal elementer i ArrayList.
Spørgsmål nr. 5) Hvad er forskellen mellem ArrayLists kapacitet og størrelse?
Svar: ArrayList har både kapacitet og størrelse. Kapacitet er den samlede størrelse af ArrayList eller det samlede antal elementer, den kan rumme. Størrelse er antallet af elementer eller placeringer, der indeholder data.
For eksempel, hvis ArrayList kapacitet er 10, og dens størrelse er 5, betyder det, at en ArrayList kan rumme op til 10 elementer, men på nuværende tidspunkt har kun 5 placeringer data i dem.
Konklusion
I denne vejledning diskuterede vi nogle af de yderligere begreber relateret til ArrayList som at konvertere ArrayList til en streng, liste, sæt og omvendt. Vi diskuterede også forskellene mellem ArrayList og Vector, ArrayList og LinkedList osv.
I vores kommende vejledning tager vi en ny samling op og lærer den grundigt.
=> Tjek her for at se AZ af Java-træningsvejledninger her.
Anbefalet læsning
- Java String med String Buffer og String Builder Tutorial
- Java ArrayList - Sådan erklæres, initialiseres og udskrives en ArrayList
- Java Reflection Tutorial med eksempler
- Java String Tutorial | Java strengmetoder med eksempler
- Java-tråde med metoder og livscyklus
- Java-implementering: Oprettelse og udførelse af Java JAR-fil
- Java Basics: Java Syntax, Java Class og Core Java Concepts
- Java Virtual Machine: Hvordan JVM hjælper med at køre Java-applikationer