Java valodā, Masīvs un Saraksts ir divas vissvarīgākās datu struktūras. Šajā sadaļā mēs uzzināsim kā pārvērst Java masīvu sarakstā. Esam arī radījuši Java programmas kas pārvērš masīvu par sarakstu izmantojot dažādas Java metodes.
Masīva pārveidošana par sarakstu Java
Java masīvs ir vairāku viena un tā paša datu tipa vērtību kolekcija. Masīvā var būt objekti un primitīvi veidi. Tas ir atkarīgs no masīva definīcijas. Ja masīva definīcija ir primitīva tipa, masīva vērtības tiek saglabātas lipīgajā atmiņas vietā. Ja masīvā ir objektu elementi, elementi, kas tiek glabāti kaudzes segmentā.
In Java , a Saraksts ir saskarne, kas pieder Java kolekcijas ietvaram. Tas sakārtotā veidā saglabā elementus objektu formā un saglabā ievietošanas secību. Tas ļauj mums saglabāt dublētās vērtības. Klases ArrayList , LinkedList , Vektors un Kaudze ievieš List interfeisu.
Java piedāvā piecas metodes masīva pārvēršanai sarakstā:
- Vietējā metode
- Izmantojot Arrays.asList() metodi
- Metodes Collections.addAll() izmantošana
- Izmantojot Java 8 Stream API
- Izmantojot Gvajaves sarakstus.newArrayList() metodi
Vietējā metode
Tā ir vienkāršākā metode Java masīva konvertēšanai sarakstā. Šajā metodē vispirms mēs izveidojam tukšu sarakstu un pievienojam visus masīva elementus sarakstam. Apskatīsim piemēru.
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; } }
Izvade:
sql datu tipi
Izmantojot Arrays.asList() metodi
Tā ir Java Arrays klases metode, kas pieder pakotnei java.util. Izmantojot metodi asList() ar metodi Collection.toArray(), tā darbojas kā tilts starp masīvu un kolekciju API.
Sintakse:
public static List asList(T... a)
Metode parsē masīvu kā parametru, ar kuru tiks atbalstīts saraksts. Tas atgriež norādītā masīva serializējamu fiksēta izmēra saraksta skatu. Apskatīsim piemēru.
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; } }
Izvade:
Metodes Collections.addAll() izmantošana
Tā ir metode Java kolekcijas klasē. tas pieder java.util pakotnei. Klase nodrošina metodi ar nosaukumu pievienot visu() . Mēs varam izmantot metodi, lai pārveidotu masīvu par sarakstu. Tas pievieno visus elementus norādītajai kolekcijai. Mēs varam norādīt elementus vai nu atsevišķi, vai masīva veidā. Tas darbojas tāpat kā c.addAll(Arrays.asList(elements)). Tā ir ātrāka ieviešana nekā cita ieviešana.
Sintakse:
public static boolean addAll(Collection c, T... elements)
Tas analizē divus parametrus:
Tas atgriežas taisnība ja zvana rezultātā mainās kolekcija. Tas rada šādus izņēmumus:
- Ja parametrs c neatbalsta pievienošanas darbību, tas izmet UnsupportedOperationException .
- Ja norādītajos masīva elementos ir viena vai vairākas nulles vērtības un c neatļauj nulles elementus, tas izmet NullPointerException .
- Ja kāds masīva elements neļauj to pievienot parametram c, tas tiek izmests IllegalPointerException .
Apskatīsim piemēru.
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; } }
Izvade:
Izmantojot Java 8 Stream API
Java 8 nodrošina Stream API apstrādāt objektu kolekcijas. Tā ir metožu virkne, kuras var apvienot, lai iegūtu vēlamo rezultātu. Atcerieties, ka tas nemaina sākotnējo datu struktūru. Tas nodrošina izvadi, pamatojoties uz konveijera metodēm. Mēs varam sasniegt Stream vairākos veidos, bet nākamajā programmā mēs to izmantojām Arrays.stream(Object[]) lai sasniegtu straumi.
Collectors.toList() metode: Metode atgriež savācēju, kas apkopo ievades elementus jaunizveidotā sarakstā sastapšanās metodē.
Sintakse:
public static Collector<t,?,list> toList() </t,?,list>
Kur T ir mūsu norādītā elementa veids. Metode nesniedz garantijas par veidu, mainīgumu, pavedienu drošību un serializējamību.
1nf 2nf 3nf
Izmantosim Stream API Java programmā un pārveidosim masīvu par sarakstu.
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); } }
Izvade:
Gvajaves sarakstu izmantošana.newArrayList()
Tā ir metode Saraksti klasei, kas pieder com.google.common.collect iepakojums. Klase nodrošina metodi newArrayList() kas izveido mainīgu tukšu ArrayList instanci ar norādītā masīva elementiem.
Sintakse:
public static ArrayList newArrayList(E... elements)
Piezīme. NewArrayList() metode ir pieejama Java 6 un vecākām versijām. Jaunākajās versijās tas ir novecojis. Iepriekš minētās metodes vietā mēs tieši izmantojam ArrayList konstruktoru.
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); } }
Izvade: