Hôm nay chúng ta sẽ học cách tạo ArrayList trong Java cũng như cách tạo ArrayList chứa các phần tử mảng.
Mảng các ArrayList trong Java
Java Array of ArrayList
Việc tạo mảng các arraylist trong Java không hề phức tạp. Dưới đây là chương trình đơn giản minh họa ví dụ:
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);
}
}
}
Lưu ý, chúng ta không thể dùng Generics khi tạo mảng vì Java không hỗ trợ generic array.
Nếu thử đoạn code dưới đây, trình biên dịch sẽ báo lỗi: Cannot create a generic array of List.
List<String>[] arrayOfList = new List<String>[2];
Java ArrayList of Array
Chúng ta cũng có thể tạo ArrayList mà các phần tử của nó là mảng. Dưới đây là ví dụ đơn giản minh họa cách tạo danh sách chứa các phần tử mảng trong Java.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class JavaArrayListOfStringArray {
public static void main(String[] args) {
// List of String arrays
List<String[]> list = new ArrayList<String[]>();
String[] arr1 = { "a", "b", "c" };
String[] arr2 = { "1", "2", "3", "4" };
list.add(arr1);
list.add(arr2);
// printing list of String arrays in the ArrayList
for (String[] strArr : list) {
System.out.println(Arrays.toString(strArr));
}
}
}
Java ArrayList of Object Array
Nếu bạn không chắc về kiểu dữ liệu trong mảng, hoặc muốn tạo ArrayList chứa nhiều kiểu dữ liệu khác nhau, có thể tạo ArrayList của mảng đối tượng (Object Array).
Ví dụ:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class JavaArrayListOfObjectArray {
public static void main(String[] args) {
// list of Object arrays to hold different types of array
List<Object[]> list = new ArrayList<Object[]>();
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);
// list holds different types of Object arrays, let's print them
for (Object[] objArr : list) {
System.out.println(Arrays.toString(objArr));
// iterating over the array and doing operation based on it's type
for (Object obj : objArr) {
// using instanceof keyword to find the Object type in the array
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;
}
}
}
Khi chạy chương trình trên, bạn sẽ nhận được kết quả như sau.
[a, b, c]
[1, 2, 3, 4]
[A.class::AA, A.class::BB]
Trên đây là hướng dẫn tạo mảng các ArrayList và ArrayList các mảng trong Java.
Bạn có thể tham khảo thêm nhiều ví dụ Java core khác trong GitHub Repository
của chúng tôi.
Tham khảo: Java Arrays