java arraylist conversions other collections
Ta vadnica obravnava pretvorbe ArrayList v druge zbirke, kot so Set, LinkedList, Lists itd., Skupaj z razlikami med temi zbirkami:
Do zdaj smo v Javi videli skoraj vse koncepte, povezane z ArrayList. Poleg ustvarjanja in obdelave ArrayList z različnimi operacijami ali metodami, ki jih ponuja razred ArrayList, je včasih treba tudi ArrayList pretvoriti v eno ali več zbirk.
=> Obiščite tukaj, če se želite naučiti Jave iz nič.
V tej vadnici bomo obravnavali nekatere pretvorbe iz ArrayList v druge zbirke, ki vključujejo List, LinkedList, Vector, Set itd. Upoštevali bomo tudi pretvorbo med ArrayList in String. Po pretvorbah bomo razpravljali tudi o razlikah med ArrayLists in drugimi zbirkami - Arrays, List, Vector, LinkedList itd.
Kaj se boste naučili:
- Pretvorba ArrayList v niz
- Pretvorba String To ArrayList
- Pretvori seznam v ArrayList v Javi
- Pretvori ArrayList za nastavitev v Javi
- Pretvori Set to ArrayList v Javi
- Polje seznama ArrayList v Javi
- ArrayList nizov v Javi
- Seznam Vs ArrayList v Javi
- Vector Vs ArrayList
- ArrayList vs LinkedList
- Pogosto zastavljena vprašanja
- Zaključek
- Priporočeno branje
Pretvorba ArrayList v niz
Za pretvorbo ArrayList v String je mogoče uporabiti naslednje metode.
# 1) Uporaba predmeta 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); } }
Izhod:
ArrayList: [Programska oprema, testiranje, pomoč]
String iz ArrayList: Pomoč za testiranje programske opreme
V zgornjem programu je ustvarjen objekt StringBuilder. Nato je z uporabo zanke forEach vsak element v ArrayList dodan predmetu StringBuilder. Nato se objekt StringBuilder pretvori v niz. Upoštevajte, da z uporabo metode dodajanja StringBuilder; nizu lahko dodate tudi ločilo.
V zgornjem primeru smo za ločilo uporabili presledek (““).
# 2) Uporaba metode String.join ()
Za pretvorbo ArrayList v String je mogoče uporabiti metodo String.join (). Tu lahko na način združevanja prenesete tudi ustrezna ločila.
Spodnji program to dokazuje.
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); } }
Izhod:
Seznam Array: [Delhi, Mumbai, Chennai, Kolkata]
Niz pretvorjen iz ArrayList: Delhi Mumbai Chennai Kolkata
Vidite lahko, da ArrayList neposredno posredujemo kot argument metodi String.join () skupaj z ločevalnikom.
Za enostavne String ArrayLists je String.join () najboljši način za pretvorbo v String. Toda za bolj zapletene predmete ArrayLists je uporaba StringBuilderja učinkovitejša.
Pretvorba String To ArrayList
Za pretvorbo Stringa v ArrayList sta na voljo dva koraka:
java v primerjavi s c ++
- Niz je razdeljen s funkcijo split (), podnizi (razdeljeni na ustreznem ločilniku) pa so shranjeni v nizu nizov.
- Niz nizov, dobljen z razdelitvijo niza, se nato pretvori v ArrayList z uporabo metode 'asList ()' razreda Arrays.
Program za pretvorbo niza v ArrayList je podan spodaj.
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 ); } }
Izhod:
Vhodni niz: niz programa ArrayList
ArrayList iz String: [The, string, to, ArrayList, program]
V zgornjem programu delimo niz na presledke in ga zberemo v nizu nizov. Nato se ta matrika pretvori v ArrayList nizov.
Pretvori seznam v ArrayList v Javi
ArrayList izvaja vmesnik List. Če želite seznam pretvoriti v njegovo izvajanje, kot je ArrayList, lahko to storite z metodo addAll vmesnika List.
Spodnji program prikazuje pretvorbo seznama v ArrayList z dodajanjem vseh elementov seznama v 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); } }
Izhod:
Vsebina seznama: [ArrayList, Vector, LinkedList, Stack, Set, Map]
ArrayList po dodajanju elementov: [ArrayList, Vector, LinkedList, Stack, Set, Map]
Pretvori ArrayList za nastavitev v Javi
Naslednje metode pretvorijo ArrayList v Set.
# 1) Uporaba tradicionalnega iterativnega pristopa
To je tradicionalni pristop. Tu preletimo seznam in dodamo vsak element seznama ArrayList naboru.
V spodnjem programu imamo ArrayList niza. Razglasimo niz HashSet. Nato s pomočjo zanke forEach ponovimo ArrayList in dodamo vsak element v HashSet.
Na podoben način lahko tudi ArrayList pretvorimo v 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); } }
Izhod:
Seznam array: [rdeča, zelena, modra, modra, magenta, rumena]
HashSet pridobljen iz ArrayList: [Rdeča, Cijan, Modra, Rumena, Magenta, Zelena]
# 2) Uporaba konstruktorja nastavitev
Naslednja metoda za pretvorbo seznama ArrayList v nabor je uporaba konstruktorja. Pri tej metodi ArrayList posredujemo kot argument konstruktorju nastavitev in tako inicializiramo nastavljeni objekt z elementi ArrayList.
Spodnji program prikazuje uporabo ArrayList pri ustvarjanju nastavljenega predmeta.
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); } }
Izhod:
Seznam array: [rdeča, zelena, modra, modrozelena, magenta, rumena
TreeSet pridobljen iz ArrayList: [modra, cian, zelena, magenta, rdeča, rumena]
# 3) Uporaba metode addAll
Za dodajanje vseh elementov ArrayList v nabor lahko uporabite tudi metodo addAll iz Set.
Naslednji program uporablja metodo addAll za dodajanje elementov ArrayList v 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); } }
Izhod:
Seznam array: [rdeča, zelena, modra, modra, magenta, rumena]
HashSet pridobljen iz ArrayList: [Rdeča, Cijan, Modra, Rumena, Magenta, Zelena]
# 4) Uporaba Java 8 Stream
Pretoki so novi dodatki k Java 8. Ta razred pretoka ponuja metodo za pretvorbo ArrayList v tok in nato za nastavitev.
Spodnji program Java prikazuje uporabo metode razreda toka za pretvorbo ArrayList v nastavljeno.
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); } }
Izhod:
Seznam array: [rdeča, zelena, modra, modra, magenta, rumena]
Komplet, pridobljen s seznama ArrayList: [rdeča, modra, modra, rumena, magenta, zelena]
Pretvori Set to ArrayList v Javi
V zadnjem poglavju smo videli pretvorbo ArrayList v Set. Pretvorba iz Set v ArrayList uporablja tudi enake metode, kot je opisano zgoraj, s to razliko, da se položaj nabora in ArrayList spremeni.
Spodaj so primeri programov za pretvorbo Set v ArrayList. Drugi opis vsake metode ostaja enak.
# 1) Iterativni pristop
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); } }
Izhod:
Dani sklop: [En, Dva, Tri]
ArrayList, pridobljen iz niza: [One, Two, Three]
V zgornjem programu preletimo Set in vsak element nabora dodamo v ArrayList.
# 2) Uporaba konstruktorja
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); } }
Izhod:
Dani sklop: [En, Dva, Tri]
ArrayList, pridobljen iz niza: [One, Two, Three]
Zgornji program ustvari nabor in ArrayList. Objekt ArrayList je ustvarjen tako, da je v njegovem konstruktorju argumentiran kot argument.
# 3) Uporaba metode addAll
kako napisati primer poročila o napaki
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); } }
Izhod:
Dani sklop: [En, Dva, Tri]
ArrayList, pridobljen iz niza: [One, Two, Three]
Tu uporabimo metodo addAll ArrayList za dodajanje elementov iz nabora v ArrayList.
# 4) Uporaba 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); } }
Izhod:
Dani sklop: [En, Dva, Tri]
ArrayList, pridobljen iz niza: [One, Two, Three]
Zgornji program za pretvorbo Set v ArrayList uporablja razred toka.
Polje seznama ArrayList v Javi
Polje ArrayList, kot že ime pove, je sestavljeno iz ArrayLists kot njegovih elementov. Čeprav se funkcija ne uporablja redno, se uporablja, kadar je potrebna učinkovita uporaba prostora v pomnilniku.
Naslednji program v Javi izvaja matriko ArrayLists.
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 Izhod:
kaj pomeni privzeti prehod ni na voljo
Vsebina array of ArrayList:
[En, dva, dva]
[Rdeča, zelena, modra]
V zgornjem programu najprej definiramo dva seznama. Nato razglasimo Array of two ArrayList. Vsak element te matrike je ArrayList, definiran prej. Nazadnje se vsebina array of ArrayList prikaže s pomočjo zanke for.
ArrayList nizov v Javi
Tako kot imamo matriko ArrayLists, lahko imamo tudi ArrayList matrikov. Tu je vsak posamezen element ArrayList Array.
Spodnji program prikazuje 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)); } } }
Izhod:
Vsebina ArrayList of Arrays:
[Rdeča, zelena, modra]
[Pune, Mumbai, Delhi]
Zgornji program prikazuje ArrayList of Arrays. Sprva razglasimo ArrayList nizovnih nizov. To pomeni, da bo vsak element ArrayList String Array. Nato določimo dva niza. Nato se vsak niz doda na seznam ArrayList. Na koncu natisnemo vsebino ArrayList of Arrays.
Za tiskanje vsebine prehodimo ArrayList s pomočjo zanke for. Za vsako ponovitev natisnemo vsebino elementa ArrayList, ki ima matriko, z uporabo metode Arrays.toString ().
Seznam Vs ArrayList v Javi
Naslednje tabele prikazujejo nekatere razlike med seznamom in seznamom arrayList.
Seznam ArrayList Seznam je vmesnik v Javi ArrayList je del ogrodja zbirke Java Seznam je izveden kot vmesnik ArrayList se izvaja kot razred zbirke Razširi zbirni vmesnik izvaja vmesnik seznama in razširja AbstractList Del imenskega prostora System.Collection.generic Del imenskega prostora System.Collections S pomočjo seznama lahko ustvarite seznam elementov, do katerih lahko dostopate s pomočjo indeksov. Z uporabo ArrayList lahko ustvarimo dinamično polje elementov ali predmetov, katerih velikost se samodejno spreminja s spremembami vsebine.
Vector Vs ArrayList
Spodaj je nekaj razlik med vektorjem in seznamom array.
ArrayList LinkedList ArrayList izvaja seznam vmesnik LinkedList izvaja vmesnike List in Deque. Shranjevanje in dostop do podatkov sta v programu ArrayList učinkovita. LinkedList dobro obvladuje podatke. ArrayList interno implementira dinamično matriko. LinkedList interno izvaja dvojno povezan seznam. Ker ArrayList interno implementira dinamično matriko, je dodajanje / brisanje elementov počasno, saj je potrebno veliko premikanja bitov. LinkedList je hitrejši pri dodajanju / odstranjevanju elementov, saj premik bitov ni potreben. Manj porabe pomnilnika, saj so v ArrayList shranjeni samo dejanski podatki. Več dodatnega pomnilnika, saj vsako vozlišče v LinkedList vsebuje podatke in naslov naslednjega vozlišča.
ArrayList vs LinkedList
Poglejmo zdaj različne razlike med ArrayList in LinkedList.
ArrayList LinkedList ArrayList izvaja seznam vmesnik LinkedList izvaja vmesnike List in Deque. Shranjevanje in dostop do podatkov sta v programu ArrayList učinkovita. LinkedList dobro obvladuje podatke. ArrayList interno implementira dinamično matriko. LinkedList interno izvaja dvojno povezan seznam. Ker ArrayList interno implementira dinamično matriko, je dodajanje / brisanje elementov počasno, saj je potrebno veliko premikanja bitov. LinkedList je hitrejši pri dodajanju / odstranjevanju elementov, saj premik bitov ni potreben. Manj porabe pomnilnika, saj so v ArrayList shranjeni samo dejanski podatki. Več dodatnega pomnilnika, saj vsako vozlišče v LinkedList vsebuje podatke in naslov naslednjega vozlišča.
Pogosto zastavljena vprašanja
V # 1) Kako pretvorite ArrayList v Array v Javi?
Odgovor: Za pretvorbo ArrayList v Array v Javi lahko uporabimo metodo toArray () iz API-ja ArrayList, ki pretvori dani ArrayList v Array.
V # 2) Kako razdelite niz in ga shranite v ArrayList v Javi?
Odgovor: Niz je razdeljen s funkcijo split (). Ta metoda vrne polje nizov. Nato lahko z uporabo metode Arrays.asList () matriko nizov pretvorite v ArrayList nizov.
V # 3) Kakšna je privzeta velikost seznama ArrayList?
Odgovor: Objekt ArrayList, ustvarjen brez navedbe zmogljivosti, ima velikost 0, ker na seznamu ni elementov. Toda privzeta zmogljivost tega seznama ArrayList je 10.
V # 4) Kakšna je razlika med dolžino () in velikostjo () ArrayList?
Odgovor: ArrayList nima lastnosti ali metode length (). Zagotavlja samo metodo size (), ki vrne skupno število elementov v ArrayList.
V # 5) Kakšna je razlika med zmogljivostjo in velikostjo ArrayList?
Odgovor: ArrayList ima tako zmogljivost kot velikost. Kapaciteta je skupna velikost seznama ArrayList ali skupno število elementov, ki jih lahko vsebuje. Velikost je število elementov ali lokacij, v katerih so podatki.
Na primer, če je zmogljivost ArrayList 10 in njegova velikost 5, to pomeni, da lahko ArrayList vsebuje do 10 elementov, vendar je trenutno v njih samo 5 lokacij.
Zaključek
V tej vadnici smo razpravljali o nekaterih dodatnih konceptih, povezanih z ArrayList, kot je pretvorba ArrayList v niz, seznam, niz in obratno. Razpravljali smo tudi o razlikah med ArrayList in Vector, ArrayList in LinkedList itd.
V naši prihajajoči vadnici bomo vzeli še eno zbirko in se jo temeljito naučili.
=> Tukaj si oglejte A-Z vadnic za učenje Java.
Priporočeno branje
- Java String z vmesnikom String Buffer in String Builder
- Java ArrayList - Kako prijaviti, inicializirati in natisniti ArrayList
- Vadnica za odsev Java s primeri
- Vadnica za Java String | Nizovske metode Java s primeri
- Java niti z metodami in življenjskim ciklom
- Uvajanje Java: Ustvarjanje in izvajanje datoteke Java JAR
- Osnove Java: Sintaksa Java, Razred Java in Osnovni koncepti Java
- Navidezni stroj Java: kako JVM pomaga pri zagonu aplikacije Java