ב-Java, מַעֲרָך ו רשימה הם שני מבני הנתונים החשובים ביותר. בחלק זה נלמד כיצד להמיר מערך Java לרשימה. גם אנחנו יצרנו תוכניות Java הממיר מערך לרשימה באמצעות שיטות Java שונות.
המרת מערך לרשימה ב-Java
מערך Java הוא אוסף של ערכים מרובים מאותו סוג נתונים. מערך יכול להכיל אובייקטים וסוגים פרימיטיביים. זה תלוי בהגדרה של המערך. אם הגדרת מערך היא מסוג פרימיטיבי, הערכים של המערך מאחסנים במיקום הזיכרון המדבק. אם מערך מכיל אלמנטים של אובייקטים, אלמנטים המאוחסנים בקטע הערימה.
ב Java , א רשימה הוא ממשק ששייך למסגרת Java Collections. הוא מאחסן אלמנטים בצורה של אובייקטים בצורה מסודרת ומשמר את סדר ההכנסה. זה מאפשר לנו לאחסן ערכים כפולים. השיעורים רשימת מערך , רשימה מקושרת , וֶקטוֹר ו לַעֲרוֹם מיישמת את ממשק List.
Java מספקת חמש שיטות להמרת מערך לרשימה הן כדלקמן:
- שיטה מקומית
- שימוש בשיטת Arrays.asList()
- שימוש בשיטת Collections.addAll()
- שימוש ב-Java 8 Stream API
- שימוש בשיטת Guava Lists.newArrayList()
שיטה מקומית
זוהי השיטה הפשוטה ביותר להמיר Java Array לרשימה. בשיטה זו ראשית, אנו יוצרים רשימה ריקה ומוסיפים את כל האלמנטים של המערך לרשימה. בואו נראה דוגמה.
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; } }
תְפוּקָה:
שימוש בשיטת Arrays.asList()
זוהי השיטה של מחלקת Java Arrays ששייכת לחבילת java.util. כאשר אנו משתמשים בשיטת asList() עם שיטת Collection.toArray(), היא פועלת כגשר בין APIs מבוססי מערך ומבוססי אוסף.
תחביר:
public static List asList(T... a)
השיטה מנתחת מערך כפרמטר שבאמצעותו הרשימה תגובה. הוא מחזיר תצוגת רשימה הניתנת לסידרה בגודל קבוע של המערך שצוין. בואו נראה דוגמה.
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; } }
תְפוּקָה:
שימוש בשיטת Collections.addAll()
זו השיטה של ה אוספי Java מעמד. זה שייך לחבילת java.util. המחלקה מספקת שיטה בשם הוסף הכל() . אנחנו יכולים להשתמש בשיטה כדי להמיר מערך לרשימה. זה מוסיף את כל האלמנטים לאוסף שצוין. אנו יכולים לציין אלמנטים בנפרד או בצורה של מערך. זה עובד אותו דבר כמו c.addAll(Arrays.asList(elements)). זהו יישום מהיר יותר מיישום אחר.
תחביר:
public static boolean addAll(Collection c, T... elements)
הוא מנתח שני פרמטרים:
זה חוזר נָכוֹן אם הגבייה השתנתה כתוצאה מהשיחה. זה זורק את החריגים הבאים:
- אם הפרמטר c אינו תומך בפעולת ההוספה, הוא זורק UnsupportedOperationException .
- אם רכיבי המערך שצוינו מכילים ערך null אחד או יותר ו-c אינו מאפשר רכיבי null, הוא זורק NullPointerException .
- אם אלמנט מערך כלשהו מונע ממנו להתווסף לפרמטר c הוא זורק IllegalPointerException .
בואו נראה דוגמה.
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; } }
תְפוּקָה:
שימוש ב-Java 8 Stream API
Java 8 מספק את ה-API של Stream לעבד את אוספי החפצים. זהו רצף של שיטות שניתן לבצע בצינור כדי להפיק את התוצאה הרצויה. זכור שזה לא משנה את מבנה הנתונים המקורי. הוא מספק את הפלט המבוסס על שיטות הצינור. אנחנו יכולים להשיג Stream במספר דרכים, אבל בתוכנית הבאה, השתמשנו Arrays.stream(Object[]) להשיג את הזרם.
שיטת Collectors.toList(): השיטה מחזירה Collector שאוסף את רכיבי הקלט לרשימה חדשה שנוצרה בשיטת מפגש.
סוגי נתונים של sql
תחביר:
public static Collector<t,?,list> toList() </t,?,list>
כאשר T הוא סוג האלמנט שציינו. השיטה אינה מספקת ערבויות על סוג, שינוי, בטיחות חוט ויכולת סדרה.
בואו נשתמש ב- Stream API בתוכנית Java ונמיר מערך ל- List.
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); } }
תְפוּקָה:
שימוש ב-Guava Lists.newArrayList()
זו השיטה של ה רשימות כיתה ששייכת ל com.google.common.collect חֲבִילָה. הכיתה מספקת שיטה newArrayList() שיוצר מופע ArrayList ריק שניתן לשינוי בעל הרכיבים של המערך שצוין.
תחביר:
public static ArrayList newArrayList(E... elements)
הערה: השיטה newArrayList() זמינה עבור Java 6 וגרסאות קודמות. בגרסאות מאוחרות יותר הוא הוצא משימוש. במקום השיטה לעיל, אנו משתמשים בבנאי 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); } }
תְפוּקָה: