java arraylist conversions other collections
Ovaj vodič raspravlja o konverzijama ArrayList-a u druge zbirke kao što su Set, LinkedList, Lists itd., Zajedno s razlikama između ovih zbirki:
Do sada smo vidjeli gotovo sve koncepte povezane s ArrayListom u Javi. Osim stvaranja i manipulacije ArrayListom pomoću različitih operacija ili metoda koje nudi klasa ArrayList, ponekad je potrebno pretvoriti ArrayList u jednu ili više kolekcija.
=> Posjetite ovdje da biste naučili Javu ispočetka.
U ovom uputstvu raspravit ćemo o nekim pretvorbama iz ArrayList-a u druge kolekcije koje uključuju List, LinkedList, Vector, Set itd. Također ćemo razmotriti pretvorbu između ArrayList i Stringa. Nakon konverzija, također ćemo razgovarati o razlikama između ArrayLists i ostalih zbirki - Arrays, List, Vector, LinkedList itd.
Što ćete naučiti:
- Pretvorba ArrayList u niz
- Pretvorba niza u popis array
- Pretvori popis u ArrayList u Javi
- Pretvori ArrayList za postavljanje u Javi
- Pretvori postavljeno u ArrayList u Javi
- Niz ArrayList u Javi
- ArrayList nizova u Javi
- Popis Vs ArrayList u Javi
- Vector vs ArrayList
- ArrayList vs LinkedList
- Često postavljana pitanja
- Zaključak
- Preporučena literatura
Pretvorba ArrayList u niz
Sljedeće metode mogu se koristiti za pretvaranje ArrayList u String.
# 1) Korištenje StringBuilder objekta
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); } }
Izlaz:
ArrayList: [Softver, testiranje, pomoć]
Niz iz ArrayList: Pomoć za testiranje softvera
U gornjem programu stvoren je StringBuilder objekt. Zatim se pomoću forEach petlje svaki element u ArrayListu dodaje StringBuilder objektu. Tada se objekt StringBuilder pretvara u niz. Imajte na umu da pomoću metode dodavanja StringBuilder; nizu možete dodati i odgovarajući graničnik.
U gornjem primjeru koristili smo razmak ('') kao graničnik.
# 2) Korištenjem metode String.join ()
Metoda String.join () može se koristiti za pretvaranje ArrayList u String. Ovdje također možete proslijediti odgovarajući graničnik metodi spajanja.
Program u nastavku to pokazuje.
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); } }
Izlaz:
Lista array: [Delhi, Mumbai, Chennai, Kolkata]
Niz pretvoren iz ArrayList: Delhi Mumbai Chennai Kolkata
Možete vidjeti da ArrayList izravno prosljeđujemo kao argument metodi String.join () zajedno s graničnikom.
Za jednostavne String ArrayLists, String.join () je najbolja metoda za pretvaranje u String. Ali za složenije ArrayLists objekte, upotreba StringBuilder-a je učinkovitija.
Pretvorba niza u popis array
Dva su koraka da bi se String pretvorio u ArrayList:
- Niz se dijeli pomoću funkcije split (), a podnizovi (podijeljeni na odgovarajućem graničniku) pohranjuju se u niz nizova.
- Niz nizova dobiven dijeljenjem niza zatim se pretvara u ArrayList pomoću metode 'asList ()' klase Arrays.
Program za pretvorbu niza u ArrayList dan je u nastavku.
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 ); } }
Izlaz:
Pitanja za intervju za selenov webdriver za četverogodišnje iskustvo
Ulazni niz: niz programa ArrayList
ArrayList iz niza: [The, string, to, ArrayList, program]
U gornjem programu dijelimo niz u razmake i sakupljamo ga u niz nizova. Taj se niz zatim pretvara u ArrayList nizova.
Pretvori popis u ArrayList u Javi
ArrayList implementira sučelje Popis. Ako popis želite pretvoriti u njegovu implementaciju poput ArrayList, to možete učiniti pomoću metode addAll sučelja Popisa.
Program u nastavku prikazuje pretvorbu popisa u ArrayList dodavanjem svih elemenata popisa u 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); } }
Izlaz:
Sadržaj popisa: [ArrayList, Vector, LinkedList, Stack, Set, Map]
ArrayList nakon dodavanja elemenata: [ArrayList, Vector, LinkedList, Stack, Set, Map]
Pretvori ArrayList za postavljanje u Javi
Sljedeće metode pretvaraju ArrayList u skup.
# 1) Koristeći tradicionalni iterativni pristup
To je tradicionalni pristup. Ovdje prelistavamo popis i dodajemo svaki element ArrayList u skup.
U donjem programu imamo ArrayList niza. Proglašavamo HashSet niz. Zatim pomoću forEach petlje prelazimo preko ArrayList i dodajemo svaki element u HashSet.
osnovna pitanja o rješavanju problema postavljena u intervjuu
Na sličan način možemo i ArrayList pretvoriti u 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); } }
Izlaz:
Lista array: [crvena, zelena, plava, cijan, magenta, žuta]
HashSet dobiven iz ArrayList: [Crvena, Cijan, Plava, Žuta, Magenta, Zelena]
# 2) Korištenje konstruktora za postavljanje
Sljedeća metoda za pretvaranje ArrayList u skup je upotreba konstruktora. U ovoj metodi ArrayList prosljeđujemo kao argument konstruktoru skupa i na taj način inicijaliziramo postavljeni objekt elementima ArrayList.
Program u nastavku prikazuje upotrebu ArrayList u stvaranju postavljenog objekta.
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); } }
Izlaz:
Popis polja: [Crvena, Zelena, Plava, Cijan, Magenta, Žuta
Set stabala dobiven iz ArrayList: [Plava, Cijan, Zelena, Magenta, Crvena, Žuta]
# 3) Korištenje metode AddAll
Također možete koristiti addAll metodu Set za dodavanje svih elemenata ArrayList u skup.
Sljedeći program koristi metodu addAll za dodavanje elemenata ArrayList u 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); } }
Izlaz:
Lista array: [crvena, zelena, plava, cijan, magenta, žuta]
HashSet dobiven iz ArrayList: [Crvena, Cijan, Plava, Žuta, Magenta, Zelena]
# 4) Korištenje Java 8 Streama
Streamovi su novi dodaci Javi 8. Ova klasa stream nudi metodu za pretvaranje ArrayList u stream, a zatim za postavljanje.
Java program u nastavku pokazuje upotrebu metode klase stream za pretvaranje ArrayList u 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); } }
Izlaz:
Lista array: [crvena, zelena, plava, cijan, magenta, žuta]
Set dobiven s ArrayList: [Crvena, Cijan, Plava, Žuta, Magenta, Zelena]
Pretvori postavljeno u ArrayList u Javi
U posljednjem smo odjeljku vidjeli pretvorbu ArrayList u Set. Pretvorba iz Set u ArrayList također koristi iste metode kao što je gore opisano s tom razlikom što se mijenja položaj skupa i ArrayList.
Dolje su dati primjeri programiranja za pretvaranje Set u ArrayList. Drugi opis svake metode ostaje isti.
# 1) Iterativni pristup
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); } }
Izlaz:
Dati set: [Jedan, dva, tri]
ArrayList dobiven iz skupa: [Jedan, dva, tri]
U gore navedenom programu vršimo iteraciju kroz Set i svaki element seta dodaje se na ArrayList.
# 2) Korištenje konstruktora
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); } }
Izlaz:
Dati set: [Jedan, dva, tri]
ArrayList dobiven iz skupa: [Jedan, dva, tri]
Gornji program stvara skup i ArrayList. Objekt ArrayList stvara se pružanjem postavljenog objekta kao argumenta u svom konstruktoru.
# 3) Korištenje metode 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); } }
Izlaz:
Dati set: [Jedan, dva, tri]
ArrayList dobiven iz skupa: [Jedan, dva, tri]
Ovdje koristimo metodu addAll ArrayList za dodavanje elemenata iz skupa u ArrayList.
# 4) Korištenje Java 8 Streama
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); } }
Izlaz:
Dati set: [Jedan, dva, tri]
ArrayList dobiven iz skupa: [Jedan, dva, tri]
Gornji program koristi klasu stream za pretvaranje Set u ArrayList.
Niz ArrayList u Javi
Niz ArrayList kao što mu samo ime govori sastoji se od ArrayLists kao njegovih elemenata. Iako se značajka ne koristi redovito, koristi se kad je potrebno učinkovito korištenje memorijskog prostora.
Sljedeći program implementira ArrayLists u Javi.
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 Izlaz:
besplatni softver za kopiranje DVD-a za Windows
Sadržaj niza ArrayList:
[Jedan, dva, dva]
[Crvena, Zelena, Plava]
U gornjem programu prvo definiramo dva popisa. Tada deklariramo niz od dva ArrayList. Svaki element ovog niza je ArrayList definiran ranije. Konačno, sadržaj niza ArrayList prikazuje se pomoću for petlje.
ArrayList nizova u Javi
Kao što imamo niz ArrayLists, tako možemo imati ArrayList of Arrays. Ovdje je svaki pojedinačni element ArrayList-a Array.
Program u nastavku 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)); } } }
Izlaz:
Sadržaj ArrayList of Arrays:
[Crvena, Zelena, Plava]
[Pune, Mumbai, Delhi]
Gornji program prikazuje ArrayList of Arrays. U početku deklariramo ArrayList nizova nizova. To znači da će svaki element ArrayList biti String Array. Dalje, definiramo dva niza nizova. Tada se svaki niz dodaje na ArrayList. Konačno, ispisujemo sadržaj ArrayList of Arrays.
Da bismo ispisali sadržaj, prelazimo ArrayList pomoću petlje for. Za svaku iteraciju ispisujemo sadržaj elementa ArrayList koji ima Array metodom Arrays.toString ().
Popis Vs ArrayList u Javi
Sljedeće tablice prikazuju neke razlike između Popisa i ArrayList.
Popis ArrayList Popis je sučelje u Javi ArrayList dio je okvira Java Collection Popis je implementiran kao sučelje ArrayList je implementiran kao klasa kolekcije Proširuje sučelje za prikupljanje implementira sučelje popisa i proširuje AbstractList Dio System.Collection.generic prostora imena Dio prostora imena System.Collections Pomoću Popisa može se stvoriti popis elemenata kojima se može pristupiti pomoću indeksa. Korištenjem ArrayList možemo stvoriti dinamički niz elemenata ili objekata čija se veličina automatski mijenja s promjenama sadržaja.
Vector vs ArrayList
Slijede neke od razlika između vektora i popisa array-a.
ArrayList LinkedList ArrayList implementira sučelje popisa LinkedList implementira sučelja List i Deque. Pohrana i pristup podacima učinkoviti su u ArrayListu. LinkedList je dobar u manipulaciji podacima. ArrayList interno implementira dinamički niz. LinkedList interno implementira dvostruko povezan popis. Budući da ArrayList interno implementira dinamički niz, dodavanje / brisanje elemenata je sporo jer je potrebno puno pomicanja bitova. LinkedList je brži što se tiče dodavanja / uklanjanja elemenata jer nije potrebno pomicanje bitova. Manje memorijskih troškova jer se u ArrayListu pohranjuju samo stvarni podaci. Više dodatnih troškova memorije jer svaki čvor u LinkedListu sadrži podatke kao i adresu sljedećeg čvora.
ArrayList vs LinkedList
Razmotrimo sada različite razlike između ArrayList i LinkedList.
ArrayList LinkedList ArrayList implementira sučelje popisa LinkedList implementira sučelja List i Deque. Pohrana i pristup podacima učinkoviti su u ArrayListu. LinkedList je dobar u manipulaciji podacima. ArrayList interno implementira dinamički niz. LinkedList interno implementira dvostruko povezan popis. Budući da ArrayList interno implementira dinamički niz, dodavanje / brisanje elemenata je sporo jer je potrebno puno pomicanja bitova. LinkedList je brži što se tiče dodavanja / uklanjanja elemenata jer nije potrebno pomicanje bitova. Manje memorijskih troškova jer se u ArrayListu pohranjuju samo stvarni podaci. Više dodatnih troškova memorije jer svaki čvor u LinkedListu sadrži podatke kao i adresu sljedećeg čvora.
Često postavljana pitanja
P # 1) Kako pretvoriti ArrayList u Array u Javi?
Odgovor: Za pretvaranje ArrayList u Array u Javi može se koristiti metoda toArray () iz ArrayList API-ja koja pretvara zadani ArrayList u Array.
P # 2) Kako podijeliti niz i pohraniti ga u ArrayList u Javi?
Odgovor: Niz se dijeli pomoću funkcije split (). Ova metoda vraća niz nizova. Zatim se pomoću metode Arrays.asList () niz nizova može pretvoriti u ArrayList nizova.
P # 3) Koja je zadana veličina ArrayList?
Odgovor: Objekt ArrayList stvoren bez navođenja kapaciteta ima veličinu 0 jer na popisu nema dodanih elemenata. No zadani kapacitet ovog ArrayLista je 10.
P # 4) Koja je razlika između duljine () i veličine () ArrayList?
Odgovor: ArrayList nema svojstvo ili metodu length (). Pruža samo metodu size () koja vraća ukupan broj elemenata u ArrayList.
P # 5) Koja je razlika između kapaciteta i veličine ArrayList-a?
Odgovor: ArrayList posjeduje i kapacitet i veličinu. Kapacitet je ukupna veličina ArrayList-a ili ukupan broj elemenata koje može sadržavati. Veličina je broj elemenata ili lokacija u kojima se nalaze podaci.
Na primjer, ako je kapacitet ArrayList 10, a njegova veličina 5, to znači da ArrayList može sadržavati do 10 elemenata, ali trenutno samo 5 lokacija ima podatke u sebi.
Zaključak
U ovom smo tutorijalu raspravljali o nekim dodatnim konceptima povezanim s ArrayListom, poput pretvaranja ArrayList u niz, popis, skup i obrnuto. Također smo razgovarali o razlikama između ArrayList i Vector, ArrayList i LinkedList itd.
U našem nadolazećem tutorialu uzet ćemo još jednu zbirku i temeljito ćemo je naučiti.
=> Ovdje pogledajte kako biste ovdje vidjeli A-Z Java tutorijala za obuku.
Preporučena literatura
- Java string sa String Buffer-om i String Builder Tutorial
- Java ArrayList - Kako prijaviti, inicijalizirati i ispisati ArrayList
- Java Vodič za refleksiju s primjerima
- Java String Vodič | Metode Java niza s primjerima
- Java niti s metodama i životnim ciklusom
- Implementacija Jave: Izrada i izvršavanje Java JAR datoteke
- Osnove Java: Java sintaksa, Java klasa i osnovni koncepti Java
- Java virtualni stroj: kako JVM pomaže u pokretanju Java aplikacije