V Javi, Array in Seznam sta dve najpomembnejši podatkovni strukturi. V tem razdelku se bomo naučili kako pretvoriti Java Array v seznam. Tudi mi smo ustvarili Java programi ki pretvori matriko v seznam z uporabo različnih metod Java.
Pretvorba polja v seznam v Javi
Java polje je zbirka več vrednosti istega podatkovnega tipa. Matrika lahko vsebuje predmete in primitivne vrste. Odvisno je od definicije niza. Če je definicija matrike primitivnega tipa, se vrednosti matrike shranijo na nalezljivo pomnilniško lokacijo. Če matrika vsebuje elemente objektov, elemente, shranjene v segmentu kopice.
kaj je 10 od 100
notri Java , a Seznam je vmesnik, ki spada v okvir Java Collections. Elemente v obliki objektov shranjuje na urejen način in ohranja vrstni red vstavljanja. Omogoča nam shranjevanje podvojenih vrednosti. Razredi ArrayList , LinkedList , Vektor in Stack implementira vmesnik List.
Java ponuja pet načinov za pretvorbo matrike v seznam, ki so naslednji:
- Naravna metoda
- Uporaba metode Arrays.asList().
- Uporaba metode Collections.addAll().
- Uporaba Java 8 Stream API
- Uporaba metode Guava Lists.newArrayList().
Naravna metoda
To je najpreprostejši način za pretvorbo polja Java v seznam. Pri tej metodi najprej ustvarimo prazen seznam in dodamo vse elemente matrike vanj. Poglejmo primer.
ArrayToListExample1.java
import java.util.*; public class ArrayToListExample1 { public static void main(String args[]) { //creating an array String array[] = { 'Golf', 'Soccer', 'Baseball', 'Volleyball', 'Tennis', 'Badminton', 'Rugby', 'Archery', 'Skiing'}; //prints the array before conversion System.out.println('Array before conversion: '+ Arrays.toString(array)); //calling the generic function that converts Array into List List list = ArrayToListConversion(array); //print the List System.out.println('Array as List: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T array[]) { //creating the constructor of the List class List list = new ArrayList(); //using for-each loop to iterate over the array for (T t : array) { //adding each element to the List list.add(t); } //returns the list converted into Array return list; } }
Izhod:
Uporaba metode Arrays.asList().
To je metoda razreda Java Arrays, ki pripada paketu java.util. Ko uporabljamo metodo asList() z metodo Collection.toArray(), deluje kot most med API-ji, ki temeljijo na matriki, in API-ji, ki temeljijo na zbirkah.
Sintaksa:
public static List asList(T... a)
Metoda razčleni matriko kot parameter, s katerim bo podprt seznam. Vrne pogled seznama določene matrike s fiksno velikostjo, ki ga je mogoče serializirati. Poglejmo primer.
ArrayToListExample2.java
import java.util.*; public class ArrayToListExample2 { public static void main(String args[]) { //creating an array to be converted String arr[] = { 'Aston Martin', 'Bugatti', 'Bentley', 'Alfa Romeo', 'Buick', 'Acura', 'Audi', 'BMW', 'Buick' }; //prints array before conversion System.out.println('Array before conversion: '+ Arrays.toString(arr)); //calling generic method that converts Array into List List list = ArrayToListConversion(arr); //prints the List System.out.println('Array after conversion: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //invoking the asList() method and passing the array to be converted List list = Arrays.asList(arr); //returns the list return list; } }
Izhod:
Uporaba metode Collections.addAll().
Gre za metodo Zbirke Java razred. pripada paketu java.util. Razred nudi metodo z imenom dodajVse() . Metodo lahko uporabimo za pretvorbo matrike v seznam. Doda vse elemente v navedeno zbirko. Elemente lahko podajamo posamezno ali v obliki niza. Deluje enako kot c.addAll(Arrays.asList(elements)). To je hitrejša izvedba kot druga izvedba.
Sintaksa:
public static boolean addAll(Collection c, T... elements)
Razčleni dva parametra:
Vrača se prav če se je zbirka spremenila zaradi klica. Omogoča naslednje izjeme:
- Če parameter c ne podpira operacije dodajanja, vrže UnsupportedOperationException .
- Če podani elementi matrike vsebujejo eno ali več ničelnih vrednosti in c ne dovoljuje ničelnih elementov, vrže NullPointerException .
- Če katerikoli element matrike prepreči, da bi bil dodan parametru c, vrže IllegalPointerException .
Poglejmo primer.
ArrayToListExample3.java
import java.util.*; public class ArrayToListExample3 { public static void main(String args[]) { //creating an Array to be converted String arr[] = { 'San Jose', 'Dallas', 'Chicago','San Antonio', 'Los Angeles', 'Portland', 'Tucson' }; //prints the Array System.out.println('Array before conversion: '+ Arrays.toString(arr)); //method calling List list = ArrayToListConversion(arr); //print the List System.out.println('Array after conversion: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creating the constructor of thr List class List list = new ArrayList(); //the method adds Array to the List Collections.addAll(list, arr); //returns the list return list; } }
Izhod:
Uporaba Java 8 Stream API
Java 8 ponuja Stream API za obdelavo zbirk predmetov. To je zaporedje metod, ki jih je mogoče cevovodno pripraviti, da dosežemo želeni rezultat. Ne pozabite, da ne spremeni izvorne strukture podatkov. Zagotavlja izhod na podlagi cevovodnih metod. Stream lahko dosežemo na več načinov, vendar v naslednjem programu, ki smo ga uporabili Arrays.stream(Object[]) doseči tok.
Metoda Collectors.toList(): Metoda vrne zbiralnik, ki zbere vhodne elemente v na novo ustvarjen seznam v metodi srečanja.
Sintaksa:
public static Collector<t,?,list> toList() </t,?,list>
Kjer je T tip elementa, ki smo ga določili. Metoda ne zagotavlja jamstev glede tipa, spremenljivosti, varnosti niti in možnosti serializacije.
ternarni operater java
Uporabimo Stream API v programu Java in pretvorimo matriko v seznam.
ArrayToListExample4.java
import java.util.*; import java.util.stream.Collectors; public class ArrayToListExample4 { //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creates a list from the specified Array and returns the List return Arrays.stream(arr).collect(Collectors.toList()); } public static void main(String args[]) { //creating an array to be converted into List String arr[] = { 'Python', 'HTM', 'Java', 'C', 'C++', 'JavaScript', 'Ruby', 'Swift', 'PHP' }; //prints the Array before conversion System.out.println('Array: '+ Arrays.toString(arr)); //calling the method created above and storing the elements into the List object List list = ArrayToListConversion(arr); //prints the List System.out.println('List: ' + list); } }
Izhod:
Uporaba Guava Lists.newArrayList()
Gre za metodo Seznami razredu, ki pripada com.google.common.collect paket. Razred ponuja metodo novArrayList() ki ustvari spremenljiv prazen primerek ArrayList z elementi navedene matrike.
Sintaksa:
public static ArrayList newArrayList(E... elements)
Opomba: metoda newArrayList() je na voljo za Javo 6 in starejše različice. V novejših različicah je zastarel. Namesto zgornje metode uporabljamo neposredno konstruktor ArrayList.
ArrayToListExample5.java
import static com.google.common.collect.Lists.*; import java.util.*; public class ArrayToListExample5 { public static void main(String args[]) { //creating an Array to be converted into a List String arr[] = { 'Mango', 'Banana', 'Grapes', 'Apple', 'Plum', 'Blackberry', 'Papaya', 'Orange' }; //prints the Array before conversion System.out.println('Array: '+ Arrays.toString(arr)); //convert the Array to List List list = ArrayToListConversion(arr); //prints the List System.out.println('List: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creates a List from the specified Array return Lists.newArrayList(arr); } }
Izhod: