java arraylist conversions other collections
W tym samouczku omówiono konwersje ArrayList do innych kolekcji, takich jak Set, LinkedList, Listy itp., A także różnice między tymi kolekcjami:
Do tej pory widzieliśmy prawie wszystkie pojęcia związane z ArrayList w Javie. Oprócz tworzenia i manipulowania ArrayList przy użyciu różnych operacji lub metod dostarczanych przez klasę ArrayList, czasami wymagana jest również konwersja ArrayList na jedną lub więcej kolekcji.
=> Odwiedź tutaj, aby nauczyć się języka Java od podstaw.
W tym samouczku omówimy niektóre konwersje z ArrayList do innych kolekcji, które obejmują List, LinkedList, Vector, Set itp. Rozważymy również konwersję między ArrayList i String. Po konwersji omówimy również różnice między ArrayLists a innymi kolekcjami - Arrays, List, Vector, LinkedList itp.
Czego się nauczysz:
- ArrayList na konwersję ciągu
- Konwersja ciągu na ArrayList
- Konwertuj listę na ArrayList w Javie
- Konwertuj ArrayList na ustawienie w Javie
- Konwertuj zestaw na ArrayList w Javie
- Tablica ArrayList w Javie
- ArrayList Of Arrays w Javie
- Lista Vs ArrayList w Javie
- Wektor kontra ArrayList
- ArrayList vs LinkedList
- Często Zadawane Pytania
- Wniosek
- rekomendowane lektury
ArrayList na konwersję ciągu
Poniższe metody mogą służyć do konwersji ArrayList na String.
# 1) Korzystanie z obiektu 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); } }
Wynik:
The ArrayList: (oprogramowanie, testowanie, pomoc)
Ciąg z ArrayList: Pomoc do testowania oprogramowania
W powyższym programie tworzony jest obiekt StringBuilder. Następnie za pomocą pętli forEach każdy element w ArrayList jest dołączany do obiektu StringBuilder. Następnie obiekt StringBuilder jest konwertowany na ciąg. Zauważ, że używając metody „append” StringBuilder; możesz również dołączyć odpowiedni separator do ciągu.
W powyższym przykładzie użyliśmy spacji („”) jako separatora.
# 2) Użycie metody String.join ()
Do konwersji ArrayList na String można użyć metody String.join (). Tutaj możesz również przekazać odpowiedni separator do metody łączenia.
Pokazuje to poniższy program.
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); } }
Wynik:
The ArrayList: (Delhi, Bombaj, Chennai, Kalkuta)
Ciąg przekonwertowany z ArrayList: Delhi Mumbai Chennai Kalkuta
Jak widać, bezpośrednio przekazujemy ArrayList jako argument do metody String.join () wraz z separatorem.
W przypadku prostych obiektów typu String ArrayLists metoda String.join () jest najlepszą metodą konwersji na ciąg. Ale w przypadku bardziej złożonych obiektów ArrayLists użycie StringBuilder jest bardziej wydajne.
Konwersja ciągu na ArrayList
Aby przekonwertować ciąg na ArrayList, należy wykonać dwa kroki:
- Ciąg jest dzielony za pomocą funkcji split (), a podciągi (dzielone na odpowiednim separatorze) są przechowywane w tablicy ciągów.
- Tablica ciągów uzyskana w wyniku podzielenia ciągu jest następnie konwertowana na ArrayList przy użyciu metody „asList ()” klasy Arrays.
Program do konwersji ciągu znaków na ArrayList jest podany poniżej.
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 ); } }
Wynik:
Ciąg wejściowy: ciąg do programu ArrayList
ArrayList from String: (The, string, to, ArrayList, program)
W powyższym programie podzieliliśmy ciąg na spacje i zbieramy go w tablicy ciągów. Ta tablica jest następnie konwertowana na ArrayList składającą się z ciągów.
aplikacje do szpiegowania na innym telefonie
Konwertuj listę na ArrayList w Javie
ArrayList implementuje interfejs List. Jeśli chcesz przekonwertować List do jej implementacji, takiej jak ArrayList, możesz to zrobić za pomocą metody addAll interfejsu List.
Poniższy program przedstawia konwersję listy do ArrayList poprzez dodanie wszystkich elementów listy 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); } }
Wynik:
Zawartość listy: (ArrayList, Vector, LinkedList, Stack, Set, Map)
ArrayList po dodaniu elementów: (ArrayList, Vector, LinkedList, Stack, Set, Map)
Konwertuj ArrayList na ustawienie w Javie
Poniższe metody konwertują ArrayList na Set.
1) Korzystanie z tradycyjnego podejścia iteracyjnego
To jest tradycyjne podejście. Tutaj iterujemy listę i dodajemy każdy element ArrayList do zestawu.
W poniższym programie mamy ciąg ArrayList. Deklarujemy HashSet ciągu. Następnie za pomocą pętli forEach iterujemy po tablicy ArrayList i dodajemy każdy element do HashSet.
W podobny sposób możemy również przekonwertować 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); } }
Wynik:
The ArrayList: (czerwony, zielony, niebieski, cyjan, magenta, żółty)
HashSet uzyskany z ArrayList: (Red, Cyan, Blue, Yellow, Magenta, Green)
pytania i odpowiedzi do wywiadu oracle pl / sql
# 2) Korzystanie z konstruktora zestawu
Następną metodą konwersji ArrayList do zestawu jest użycie konstruktora. W tej metodzie przekazujemy ArrayList jako argument do konstruktora set iw ten sposób inicjalizujemy obiekt set elementami ArrayList.
Poniższy program pokazuje użycie ArrayList w tworzeniu obiektu zestawu.
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); } }
Wynik:
The ArrayList: (czerwony, zielony, niebieski, cyjan, magenta, żółty
TreeSet uzyskany z ArrayList: (Blue, Cyan, Green, Magenta, Red, Yellow)
# 3) Korzystanie z metody addAll
Możesz również użyć metody addAll Set, aby dodać wszystkie elementy ArrayList do zestawu.
Poniższy program używa metody addAll, aby dodać elementy 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); } }
Wynik:
The ArrayList: (czerwony, zielony, niebieski, cyjan, magenta, żółty)
HashSet uzyskany z ArrayList: (Red, Cyan, Blue, Yellow, Magenta, Green)
# 4) Korzystanie ze strumienia Java 8
Strumienie są nowym dodatkiem do języka Java 8. Ta klasa strumienia udostępnia metodę konwersji ArrayList na strumień, a następnie ustawiania.
Poniższy program w języku Java demonstruje użycie metody klasy stream do konwersji ArrayList na 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); } }
Wynik:
The ArrayList: (czerwony, zielony, niebieski, cyjan, magenta, żółty)
Zestaw uzyskany z ArrayList: (czerwony, cyjan, niebieski, żółty, magenta, zielony)
Konwertuj zestaw na ArrayList w Javie
W ostatniej sekcji widzieliśmy konwersję ArrayList do Set. Konwersja z Set na ArrayList również wykorzystuje te same metody, co opisano powyżej, z tą różnicą, że zmienia się pozycja zestawu i ArrayList.
Poniżej podano przykłady programowania do konwersji Set na ArrayList. Drugi opis dla każdej metody pozostaje taki sam.
# 1) Podejście iteracyjne
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); } }
Wynik:
Dany zestaw: (jeden, dwa, trzy)
ArrayList uzyskany z Set: (One, Two, Three)
W powyższym programie iterujemy przez Set i każdy element zestawu jest dodawany do ArrayList.
# 2) Korzystanie z 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); } }
Wynik:
Dany zestaw: (jeden, dwa, trzy)
ArrayList uzyskany z Set: (One, Two, Three)
Powyższy program tworzy zestaw i ArrayList. Obiekt ArrayList jest tworzony przez podanie obiektu zestawu jako argumentu w jego konstruktorze.
# 3) Korzystanie z 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); } }
Wynik:
Dany zestaw: (jeden, dwa, trzy)
ArrayList uzyskany z Set: (One, Two, Three)
Tutaj używamy metody addAll ArrayList, aby dodać elementy z zestawu do ArrayList.
# 4) Korzystanie ze strumienia Java 8
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); } }
Wynik:
Dany zestaw: (jeden, dwa, trzy)
ArrayList uzyskany z Set: (One, Two, Three)
Powyższy program używa klasy stream do konwersji Set na ArrayList.
Tablica ArrayList w Javie
Array of ArrayList, jak sama nazwa wskazuje, składa się z ArrayLists jako elementów. Chociaż ta funkcja nie jest używana regularnie, jest używana, gdy wymagane jest wydajne wykorzystanie miejsca w pamięci.
Poniższy program implementuje Array of ArrayLists w Javie.
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 Wynik:
jaki jest najlepszy downloader mp3
Zawartość Array of ArrayList:
(Raz, dwa, dwa)
(Czerwony, zielony, niebieski)

W powyższym programie najpierw definiujemy dwie listy. Następnie deklarujemy Array of two ArrayList. Każdy element tej tablicy jest zdefiniowaną wcześniej ArrayList. Na koniec zawartość tablicy ArrayList jest wyświetlana przy użyciu pętli for.
ArrayList Of Arrays w Javie
Tak jak mamy Array of ArrayLists, możemy również mieć ArrayList of Arrays. Tutaj każdy pojedynczy element ArrayList jest Array.
Poniższy program demonstruje 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)); } } }
Wynik:
Zawartość ArrayList of Arrays:
(Czerwony, zielony, niebieski)
(Pune, Bombaj, Delhi)

Powyższy program demonstruje ArrayList of Arrays. Początkowo deklarujemy ArrayList of String Arrays. Oznacza to, że każdy element ArrayList będzie typu String Array. Następnie definiujemy dwie tablice ciągów. Następnie każdy z Arrays jest dodawany do ArrayList. Na koniec drukujemy zawartość ArrayList of Arrays.
Aby wydrukować zawartość, przechodzimy przez ArrayList za pomocą pętli for. Dla każdej iteracji drukujemy zawartość elementu ArrayList, który ma Array przy użyciu metody Arrays.toString ().
Lista Vs ArrayList w Javie
W poniższych tabelach przedstawiono niektóre różnice między List i ArrayList.
Lista ArrayList Lista jest interfejsem w Javie ArrayList jest częścią struktury Java Collection Lista jest zaimplementowana jako interfejs ArrayList jest zaimplementowana jako klasa kolekcji Rozszerza interfejs kolekcji implementuje interfejs List i rozszerza AbstractList Część przestrzeni nazw System.Collection.generic Część przestrzeni nazw System.Collections Korzystając z listy, można utworzyć listę elementów, do których można uzyskać dostęp za pomocą indeksów. Korzystając z ArrayList, możemy stworzyć dynamiczną tablicę elementów lub obiektów, których rozmiar automatycznie zmienia się wraz ze zmianami zawartości.
Wektor kontra ArrayList
Poniżej podano niektóre różnice między Vector a ArrayList.
ArrayList Połączona lista ArrayList implementuje interfejs List LinkedList implementuje interfejsy List i Deque. Przechowywanie i dostęp do danych są wydajne w ArrayList. LinkedList jest dobry w manipulowaniu danymi. ArrayList wewnętrznie implementuje tablicę dynamiczną. LinkedList wewnętrznie implementuje podwójnie połączoną listę. Ponieważ ArrayList wewnętrznie implementuje tablicę dynamiczną, dodawanie / usuwanie elementów jest powolne, ponieważ wymagane jest wiele przesuwania bitów. LinkedList jest szybszy, jeśli chodzi o dodawanie / usuwanie elementów, ponieważ nie jest konieczne przesuwanie bitów. Mniejsze obciążenie pamięci, ponieważ w ArrayList przechowywane są tylko rzeczywiste dane. Większe obciążenie pamięci, ponieważ każdy węzeł w LinkedList zawiera dane, a także adres do następnego węzła.
ArrayList vs LinkedList
Omówmy teraz różne różnice między ArrayList a LinkedList.
ArrayList Połączona lista ArrayList implementuje interfejs List LinkedList implementuje interfejsy List i Deque. Przechowywanie i dostęp do danych są wydajne w ArrayList. LinkedList jest dobry w manipulowaniu danymi. ArrayList wewnętrznie implementuje tablicę dynamiczną. LinkedList wewnętrznie implementuje podwójnie połączoną listę. Ponieważ ArrayList wewnętrznie implementuje tablicę dynamiczną, dodawanie / usuwanie elementów jest powolne, ponieważ wymagane jest wiele przesuwania bitów. LinkedList jest szybszy, jeśli chodzi o dodawanie / usuwanie elementów, ponieważ nie jest konieczne przesuwanie bitów. Mniejsze obciążenie pamięci, ponieważ w ArrayList przechowywane są tylko rzeczywiste dane. Większe obciążenie pamięci, ponieważ każdy węzeł w LinkedList zawiera dane, a także adres do następnego węzła.
Często Zadawane Pytania
Pytanie 1) Jak przekonwertować ArrayList na tablicę w Javie?
Odpowiedź: Aby przekonwertować ArrayList na tablicę w Javie, można użyć metody toArray () z ArrayList API, która konwertuje daną ArrayList na Array.
Pytanie nr 2) Jak podzielić ciąg i przechowywać go w tablicy ArrayList w Javie?
Odpowiedź: Ciąg jest dzielony za pomocą funkcji split (). Ta metoda zwraca tablicę ciągów. Następnie za pomocą metody Arrays.asList () tablicę ciągów można przekształcić w tablicę ciągów ArrayList.
P # 3) Jaki jest domyślny rozmiar ArrayList?
Odpowiedź: Obiekt ArrayList utworzony bez określenia pojemności ma rozmiar 0, ponieważ do listy nie dodano żadnych elementów. Ale domyślna pojemność tej tablicy ArrayList to 10.
P # 4) Jaka jest różnica między length () a size () ArrayList?
Odpowiedź: ArrayList nie ma właściwości ani metody length (). Udostępnia tylko metodę size (), która zwraca całkowitą liczbę elementów w ArrayList.
P # 5) Jaka jest różnica między pojemnością a rozmiarem ArrayList?
Odpowiedź: ArrayList ma zarówno pojemność, jak i rozmiar. Pojemność to całkowity rozmiar ArrayList lub całkowita liczba elementów, które może pomieścić. Rozmiar to liczba elementów lub lokalizacji, które zawierają dane.
Na przykład, jeśli pojemność ArrayList wynosi 10, a jej rozmiar to 5, oznacza to, że ArrayList może pomieścić do 10 elementów, ale obecnie tylko 5 lokalizacji zawiera dane.
Wniosek
W tym samouczku omówiliśmy kilka dodatkowych pojęć związanych z ArrayList, takich jak konwersja ArrayList na ciąg, listę, zestaw i odwrotnie. Omówiliśmy również różnice między ArrayList a Vector, ArrayList i LinkedList itp.
W naszym nadchodzącym samouczku zajmiemy się kolejną kolekcją i dokładnie się jej nauczymy.
=> Zajrzyj tutaj, aby zobaczyć A-Z samouczków szkoleniowych Java tutaj.
rekomendowane lektury
- Ciąg Java z buforem ciągów i samouczek dotyczący tworzenia ciągów
- Java ArrayList - jak zadeklarować, zainicjować i wydrukować ArrayList
- Samouczek dotyczący refleksji w języku Java z przykładami
- Samouczek dotyczący ciągów Java | Metody ciągów Java z przykładami
- Wątki Java z metodami i cyklem życia
- Wdrażanie Java: tworzenie i wykonywanie pliku Java JAR
- Podstawy języka Java: składnia języka Java, klasa języka Java i podstawowe pojęcia dotyczące języka Java
- Wirtualna maszyna Java: jak JVM pomaga w uruchamianiu aplikacji Java