מערך של ArrayList ב-Java, ArrayList של מערך

היום נלמד כיצד ליצור מערך של ArrayList בשפת ג'אווה. נלמד גם כיצד ליצור ArrayList של אלמנטי מערך.

מערך של ArrayList בשפת ג'אווה

יצירת מערך של רשימה בשפת ג'אווה אינה מורכבת. למטה יש דוגמה פשוטה המציגה מערך בשפת ג'אווה עם ArrayList.

import java.util.ArrayList;
import java.util.List;

public class JavaArrayOfArrayList {

	public static void main(String[] args) {
		List<String> l1 = new ArrayList<>();
		l1.add("1");
		l1.add("2");

		List<String> l2 = new ArrayList<>();
		l2.add("3");
		l2.add("4");
		l2.add("5");

		List<String>[] arrayOfList = new List[2];
		arrayOfList[0] = l1;
		arrayOfList[1] = l2;

		for (int i = 0; i < arrayOfList.length; i++) {
			List<String> l = arrayOfList[i];
			System.out.println(l);
		}

	}

}

שים לב שאין אפשרות להשתמש בגנריקס בעת יצירת המערך משום שג'אווה אינה תומכת במערך גנרי. לכן אם ננסה להשתמש בקוד הבא, יתקבל שגיאת זמן קומפילציה של "אי אפשר ליצור מערך גנרי של List<String>".

List<String>[] arrayOfList = new List<String>[2];

ArrayList בשפת ג'אווה של מערך

אפשר גם ליצור מערך שאלמנטיו הם רשימה. למטה דוגמה פשוטה המראה כיצד ליצור רשימת אלמנטי מערך בשפת ג'אווה.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class JavaArrayListOfStringArray {

	public static void main(String[] args) {
		// רשימת מערכים של מחרוזות
		List list = new ArrayList();
		
		String[] arr1 = { "a", "b", "c" };
		String[] arr2 = { "1", "2", "3", "4" };
		list.add(arr1);
		list.add(arr2);
		// הדפסת רשימת מערכים של מחרוזות ב-ArrayList
		for (String[] strArr : list) {
			System.out.println(Arrays.toString(strArr));
		}
	}

}

ArrayList של מערך Object ב-Java

אם אינך בטוח לגבי סוג האובייקטים במערך או שתרצה ליצור ArrayList של מערכים שיכול להחזיק סוגים מרובים, אז תוכל ליצור ArrayList של מערך Object. להלן דוגמה פשוטה המציגה איך ליצור ArrayList של מערכי Object ב-Java.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class JavaArrayListOfObjectArray {

	public static void main(String[] args) {
		// רשימת מערכי Object להחזקת סוגי מערך שונים
		List list = new ArrayList();
		String[] arr1 = { "a", "b", "c" };
		String[] arr2 = { "1", "2", "3", "4" };

		JavaArrayListOfObjectArray aa = new JavaArrayListOfObjectArray();
		JavaArrayListOfObjectArray.A[] arr3 = { aa.new A("AA"), aa.new A("BB") };

		list.add(arr1);
		list.add(arr2);
		list.add(arr3);

		// הרשימה מחזיקה מערכי Object שונים, נדפיס אותם
		for (Object[] objArr : list) {
			System.out.println(Arrays.toString(objArr));

			// סיבוב על המערך וביצוע פעולה בהתאם לסוג שלו
			for (Object obj : objArr) {

				// שימוש במילת המפתח instanceof כדי למצוא את סוג ה-Object במערך
				if (obj instanceof String) {
					// doSomethingForStringObject();
				} else if (obj instanceof JavaArrayListOfObjectArray.A) {
					// doSomethingForAObject();
				}
			}
		}
	}

	/**
	 * A sample class to use in arraylist of arrays
	 * 
	 * @author pankaj
	 * 
	 */
	public class A {
		private String name;

		public A(String n) {
			this.name = n;
		}

		public String getName() {
			return this.name;
		}

		@Override
		public String toString() {
			return "A.class::"+this.name;
		}
	}
}

כאשר אנו מפעילים את התוכנית לעיל, היא מפיקה את הפלט הבא.

[a, b, c]
[1, 2, 3, 4]
[A.class::AA, A.class::BB]

זהו הכל ליצירת מערך של ArrayList ו-ArrayList של מערך ב-Java.

תוכל לבדוק דוגמאות נוספות של Java בסיסיות מתוך מאגר הקוד שלנו ב-GitHub.

מקור: מערכים ב-Java

Source:
https://www.digitalocean.com/community/tutorials/java-array-of-arraylist-of-array