Kiến thức

ArrayList trong java

Collection trong java LinkedList trong java

Nội dung chính

  • Lớp ArrayList trong java
  • Hierarchy của lớp ArrayList trong java
  • Khởi tạo ArrayList trong java
  • Constructor của lớp ArrayList
  • Phương thức của lớp ArrayList
  • Các Ví dụ ArrayList trong Java
    • Khởi tạo một ArrayList
    • Hiển thị các phần tử có trong ArrayList
    • Các phương thức addAll(), removeAll(), retainAll() của lớp ArrayList
    • Truy cập phần tử của ArrayList
    • Cập nhật giá trị của phần tử Arraylist
    • Xóa phần tử ArrayList
    • Tìm kiếm một phần tử ArrayList
    • Chuyển ArrayList sang mảng (Array) trong Java
    • Tạo ArrayList có kiểu generic là String
    • Tạo ArrayList có kiểu generic là đối tượng do người dùng định nghĩa
  • So sánh ArrayList vs LinkedList

Lớp ArrayList trong java

Lớp ArrayList trong java là một lớp kế thừa lớp AbstractList và triển khai của List Interface trong Collections Framework nên nó sẽ có một vài đặc điểm và phương thức tương đồng với List. ArrayList được sử dụng như một mảng động để lưu trữ các phần tử.

Những điểm cần ghi nhớ về ArrayList:

  • Lớp ArrayList trong java có thể chứa các phần tử trùng lặp.
  • Lớp ArrayList duy trì thứ tự của phần tử được thêm vào.
  • Lớp ArrayList là không đồng bộ (non-synchronized).
  • Lớp ArrayList cho phép truy cập ngẫu nhiên vì nó lưu dữ liệu theo chỉ mục.
  • Lớp ArrayList trong java, thao tác chậm vì cần nhiều sự dịch chuyển nếu bất kỳ phần tử nào bị xoá khỏi danh sách.

Hierarchy của lớp ArrayList trong java

ArrayList trong java

Lớp wiki.xettuyentrungcap.vnyList được khai báo như sau:

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, wiki.xettuyentrungcap.vnalizable

Khởi tạo ArrayList trong java

Có 2 kiểu khởi tạo ArrayList là non-generic và generic, xem thêm trong bài Collection trong java

ArrayList list = new ArrayList(); // non-generic – kiểu cũ ArrayList<String> list = new ArrayList<String>(); // generic – kiểu mới

Constructor của lớp ArrayList

Constructor Mô tả ArrayList() Nó được sử dụng để khởi tạo một danh sách mảng trống. ArrayList(Collection c) Nó được sử dụng để xây dựng một danh sách mảng được khởi tạo với các phần tử của collection c. ArrayList(int capacity) Nó được sử dụng để xây dựng một danh sách mảng mà có dung lượng ban đầu được chỉ định.

Phương thức của lớp ArrayList

Phương thức Mô tả boolean add(Object o) Nó được sử dụng để nối thêm phần tử được chỉ định vào cuối một danh sách. void add(int index, Object element) Nó được sử dụng để chèn phần tử element tại vị trí index vào danh sách. boolean addAll(Collection c) Nó được sử dụng để nối tất cả các phần tử trong collection c vào cuối của danh sách, theo thứ tự chúng được trả về bởi bộ lặp iterator. boolean addAll(int index, Collection c) Nó được sử dụng để chèn tất cả các phần tử trong collection c vào danh sách, bắt đầu từ vị trí index. void retainAll(Collection c) Nó được sử dụng để xóa những phần tử không thuộc collection c ra khỏi danh sách. void removeAll(Collection c) Nó được sử dụng để xóa những phần tử thuộc collection c ra khỏi danh sách. int indexOf(Object o) Nó được sử dụng để trả về chỉ mục trong danh sách với sự xuất hiện đầu tiên của phần tử được chỉ định, hoặc -1 nếu danh sách không chứa phần tử này. int lastIndexOf(Object o) Nó được sử dụng để trả về chỉ mục trong danh sách với sự xuất hiện cuối cùng của phần tử được chỉ định, hoặc -1 nếu danh sách không chứa phần tử này. Object[] toArray() Nó được sử dụng để trả về một mảng chứa tất cả các phần tử trong danh sách này theo đúng thứ tự. Object[] toArray(Object[] a) Nó được sử dụng để trả về một mảng chứa tất cả các phần tử trong danh sách này theo đúng thứ tự. Object clone() Nó được sử dụng để trả về một bản sao của ArrayList. void clear() Nó được sử dụng để xóa tất cả các phần tử từ danh sách này. void trimToSize() Nó được sử dụng để cắt dung lượng của thể hiện ArrayList này là kích thước danh sách hiện tại. boolean contains(element) Kết quả trả về là true nếu tìm thấy element trong danh sách, ngược lại trả về false.

Các Ví dụ ArrayList trong Java

Khởi tạo một ArrayList

Để khai báo một ArrayList, chúng ta cần phải import gói thư viện wiki.xettuyentrungcap.vnyList của Java. Cú pháp import như sau:

// import gói thư viện wiki.xettuyentrungcap.vnyList import wiki.xettuyentrungcap.vnyList; public class KhoiTaoArrayList { public static void main(String[] args) { // khai báo 1 ArrayList có tên là listString // có kiểu là String ArrayList<String> listString = new ArrayList<String>(); } }

Ngoài ra, nếu chúng ta đã biết trước số lượng phần tử thì chúng ta có thể khai báo kèm với số lượng phần tử của nó. Ví dụ dưới đây sẽ khai báo một ArrayList có kiểu String và có 20 phần tử:

// import gói thư viện wiki.xettuyentrungcap.vnyList import wiki.xettuyentrungcap.vnyList; public class KhoiTaoArrayList { public static void main(String[] args) { // khai báo 1 ArrayList có tên là listString // có kiểu là String ArrayList<String> listString = new ArrayList<String>(20); } }

Hiển thị các phần tử có trong ArrayList

Để hiển thị các phần tử có trong ArrayList, chúng ta có các cách như sau:

Hiển thị theo tên của ArrayList.

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class DuyetArrayList1 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // hiển thị các phần tử của list wiki.xettuyentrungcap.vntln(“Các phần tử có trong list là: “); wiki.xettuyentrungcap.vntln(list); } }

Kết quả:

Hiển thị theo tên của ArrayList

Duyệt các phần tử của ArrayList – sử dụng vòng lặp for

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class DuyetArrayList2 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // sử dụng vòng lặp for – hiển thị các phần tử của list wiki.xettuyentrungcap.vntln(“Các phần tử có trong list là: “); for (int i = 0; i < wiki.xettuyentrungcap.vn(); i++) { wiki.xettuyentrungcap.vntln(list.get(i)); } } }

Kết quả:

Sử dụng vòng lặp for duyệt các phần tử của ArrayList

Duyệt các phần tử của ArrayList – sử dụng vòng lặp for cải tiến

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class DuyetArrayList3 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // sử dụng vòng lặp for cải tiến – hiển thị các phần tử của list wiki.xettuyentrungcap.vntln(“Các phần tử có trong list là: “); for (String str : list) { wiki.xettuyentrungcap.vntln(str); } } }

Kết quả:

Sử dụng vòng lặp for cải tiến duyệt các phần tử của ArrayList

Duyệt các phần tử của ArrayList – sử dụng Iterator.

Để sử dụng được Iterator chúng ta cần phải import gói thư viện wiki.xettuyentrungcap.vnator của Java.

Xem Thêm : List sau by là gì

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; import wiki.xettuyentrungcap.vnator; public class DuyetArrayList4 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // sử dụng Iterator – hiển thị các phần tử của list Iterator<String> iterator = wiki.xettuyentrungcap.vnator(); wiki.xettuyentrungcap.vntln(“Các phần tử có trong list là: “); while (iterator.hasNext()) { wiki.xettuyentrungcap.vntln((String) wiki.xettuyentrungcap.vn()); } } }

Kết quả:

Sử dụng Iterator duyệt các phần tử của ArrayList

Duyệt các phần tử của ArrayList – sử dụng ListIterator.

Vì ArrayList là một lớp triển khai của List Interface nên nó cũng có thể sử dụng ListIterator để duyệt qua các phần tử của nó. Để sử dụng được ListIterator chúng ta cần phải import gói thư viện wiki.xettuyentrungcap.vnIterator của Java.

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; import wiki.xettuyentrungcap.vnIterator; public class DuyetArrayList5 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // sử dụng ListIterator – hiển thị các phần tử của list ListIterator<String> iterator = wiki.xettuyentrungcap.vnIterator(); wiki.xettuyentrungcap.vntln(“Các phần tử có trong list là: “); while (iterator.hasNext()) { wiki.xettuyentrungcap.vntln((String) wiki.xettuyentrungcap.vn()); } } }

Kết quả:

Sử dụng ListIterator duyệt các phần tử của ArrayList

Các phương thức addAll(), removeAll(), retainAll() của lớp ArrayList

Ví dụ sau minh họa cách sử dụng các phương thức addAll(), removeAll(), retainAll() của lớp ArrayList trong Java:

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class PhuongThucArrayList1 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // Add objects to list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vntln(“ví dụ sử dụng phương thức addAll()”); wiki.xettuyentrungcap.vntln(“-“); // thêm các phần tử của list vào listA ArrayList<String> listA = new ArrayList<String>(); wiki.xettuyentrungcap.vnll(list); wiki.xettuyentrungcap.vnt(“listA:”); showList(listA); wiki.xettuyentrungcap.vntln(“nví dụ sử dụng phương thức retainAll()”); wiki.xettuyentrungcap.vntln(“-“); // khởi tạo listB ArrayList<String> listB = new ArrayList<String>(); wiki.xettuyentrungcap.vn(“Java”); // xóa những phần tử không thuộc listB khỏi listA wiki.xettuyentrungcap.vninAll(listB); wiki.xettuyentrungcap.vnt(“listA:”); showList(listA); wiki.xettuyentrungcap.vntln(“nví dụ sử dụng phương thức removeAll()”); wiki.xettuyentrungcap.vntln(“-“); // xóa những phần tử thuộc listB khỏi list wiki.xettuyentrungcap.vnveAll(listB); wiki.xettuyentrungcap.vnt(“list:”); showList(list); } public static void showList(ArrayList<String> list) { // Show list through for-each for (String obj : list) { wiki.xettuyentrungcap.vnt(“t” + obj + “, “); } wiki.xettuyentrungcap.vntln(); } }

Kết quả:

ví dụ sử dụng phương thức addAll() – listA: Java, C++, PHP, Java, ví dụ sử dụng phương thức retainAll() – listA: Java, Java, ví dụ sử dụng phương thức removeAll() – list: C++, PHP,

Truy cập phần tử của ArrayList

Java cung cấp cho chúng ta phương thức get() để truy cập đến 1 phần tử bất kỳ trong ArrayList thông qua chỉ số của phần tử đó. Chỉ số của ArrayList trong Java bắt đầu từ 0.

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class TruyCapArrayList1 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // truy cập phần tử có chỉ số 3 của list wiki.xettuyentrungcap.vntln(list.get(3)); } }

Kết quả:

Java

Cập nhật giá trị của phần tử Arraylist

Để cập nhật giá trị của phần tử trong ArrayList, Java cung cấp cho chúng ta phương thức set(index, element), trong đó index là chỉ số của phần tử cần cập nhật và element là phần tử mới để thay thế.

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class CapNhatArrayList1 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vntln(“list trước khi cập nhật: “); wiki.xettuyentrungcap.vntln(list); // cập nhật giá trị cho phần tử có chỉ số là 3 (Java) wiki.xettuyentrungcap.vn(3, “Python”); wiki.xettuyentrungcap.vntln(“list trước khi cập nhật: “); wiki.xettuyentrungcap.vntln(list); } }

Kết quả:

list trước khi cập nhật: [Java, C++, PHP, Java] list trước khi cập nhật: [Java, C++, PHP, Python]

Xóa phần tử ArrayList

Để xóa phần tử trong ArrayList, Java cung cấp cho chúng ta 2 phương thức có sẵn đó là phương thức clear() và phương thức remove().

Phương thức clear()

Phương thức clear() sẽ xóa tất cả các phần tử có trong ArrayList. Sau đây là ví dụ minh họa phương thức này.

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class XoaArrayList1 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Python”); wiki.xettuyentrungcap.vntln(“Số phần tử của list ban đầu : ” + list); wiki.xettuyentrungcap.vntln(“Các phần tử của list ban đầu: ” + wiki.xettuyentrungcap.vn()); // clear list wiki.xettuyentrungcap.vnr(); wiki.xettuyentrungcap.vntln(“nSố phần tử của list sau khi clear: ” + list); wiki.xettuyentrungcap.vntln(“Các phần tử của list sau khi clear: ” + wiki.xettuyentrungcap.vn()); } }

Kết quả:

Số phần tử của list ban đầu : [Java, C++, PHP, Python] Các phần tử của list ban đầu: 4 Số phần tử của list sau khi clear: [] Các phần tử của list sau khi clear: 0

Phương thức remove()

Phương thức remove() sẽ xóa phần tử ra khỏi ArrayList theo 2 cách đó là xóa dựa vào chỉ số của phần tử và xóa trực tiếp phần tử đó (không cần biết đến chỉ số của nó). Ví dụ dưới đây sẽ minh họa 2 cách xóa này:

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class XoaArrayList1 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Python”); wiki.xettuyentrungcap.vntln(“Số phần tử của list ban đầu : ” + list); wiki.xettuyentrungcap.vntln(“Các phần tử của list ban đầu: ” + wiki.xettuyentrungcap.vn()); // remove phần tử có chỉ số index = 1 khỏi list wiki.xettuyentrungcap.vnve(1); wiki.xettuyentrungcap.vntln(“nSố phần tử của list sau khi remove phan tu co index = 1: ” + list); wiki.xettuyentrungcap.vntln(“Các phần tử của list sau khi remove phan tu co index = 1: ” + wiki.xettuyentrungcap.vn()); // remove phần tử có chỉ số index = 1 khỏi list wiki.xettuyentrungcap.vnve(“PHP”); wiki.xettuyentrungcap.vntln(“nSố phần tử của list sau khi remove phan tu “PHP”: ” + list); wiki.xettuyentrungcap.vntln(“Các phần tử của list sau khi remove phan tu “PHP”: ” + wiki.xettuyentrungcap.vn()); } }

Kết quả:

Xem Thêm : KIỂM ĐỊNH KỸ THUẬT AN TOÀN

Số phần tử của list ban đầu : [Java, C++, PHP, Python] Các phần tử của list ban đầu: 4 Số phần tử của list sau khi remove phan tu co index = 1: [Java, PHP, Python] Các phần tử của list sau khi remove phan tu co index = 1: 3 Số phần tử của list sau khi remove phan tu “PHP”: [Java, Python] Các phần tử của list sau khi remove phan tu “PHP”: 2

Tìm kiếm một phần tử ArrayList

Để tìm kiếm một phần tử trong ArrayList thì chúng ta có 3 phương pháp tìm kiếm như sau:

Tìm kiếm trực tiếp phần tử.

Để tìm kiếm trực tiếp phần tử, chúng ta sẽ sử dụng phương thức contains() . Kết quả trả về là true nếu tìm thấy, ngược lại trả về false.

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class TimKiemArrayList1 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Python”); // kiểm tra xem PHP có tồn tại trong list hay không? wiki.xettuyentrungcap.vntln(list.contains(“PHP”)); // kiểm tra xem ANDROID có tồn tại trong list hay không? wiki.xettuyentrungcap.vntln(list.contains(“ANDROID”)); } }

Kết quả:

true false

Tìm kiếm vị trí xuất hiện đầu tiên của 1 phần tử trong ArrayList.

Để tìm kiếm vị trí xuất hiện đầu tiên của 1 phần tử trong ArrayList, chúng ta sẽ sừ dụng phương thức indexOf(). Kết quả của phương thức này sẽ trả về chỉ số xuất hiện đầu tiên của phần tử đó trong ArrayList, ngược lại nếu không tìm thấy trả về -1.

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class TimKiemArrayList2 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Python”); // kiểm tra xem Java có tồn tại trong list hay không? wiki.xettuyentrungcap.vntln(list.indexOf(“Java”)); // kiểm tra xem ANDROID có tồn tại trong list hay không? wiki.xettuyentrungcap.vntln(list.indexOf(“ANDROID”)); } }

Kết quả:

0 -1

Tìm kiếm vị trí xuất hiện cuối cùng của 1 phần tử trong List.

Để tìm kiếm vị trí xuất hiện cuối cùng của 1 phần tử trong ArrayList, chúng ta sẽ sừ dụng phương thức lastIndexOf(). Kết quả của phương thức này sẽ trả về chỉ số xuất hiện cuối cùng của phần tử đó trong ArrayList, ngược lại nếu không tìm thấy trả về -1.

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class TimKiemArrayList3 { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // kiểm tra xem Java có tồn tại trong list hay không? wiki.xettuyentrungcap.vntln(list.lastIndexOf(“Java”)); // kiểm tra xem ANDROID có tồn tại trong list hay không? wiki.xettuyentrungcap.vntln(list.lastIndexOf(“ANDROID”)); } }

Kết quả:

3 -1

Chuyển ArrayList sang mảng (Array) trong Java

Phương thức toArray() trong Java được dùng để chuyển đổi một ArrayList sang mảng tương ứng. Sau đây là ví dụ minh họa phương thức này:

package wiki.xettuyentrungcap.vnylist; import wiki.xettuyentrungcap.vnyList; public class ConvertToArray { public static void main(String[] args) { // khai báo 1 ArrayList có tên là list // có kiểu là String ArrayList<String> list = new ArrayList<String>(); // thêm các phần tử vào list wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // sử dụng phương thức toArray() chuyển list thành mảng // kết quả của phương thức này sẽ trả về mảng arr Object[] arr = wiki.xettuyentrungcap.vnray(); // hiển thị các phần tử có trong mảng arr for (int i = 0; i < wiki.xettuyentrungcap.vnth; i++) { wiki.xettuyentrungcap.vntln(“Phần tử tại vị trí ” + i + ” ” + “trong arr là ” + arr[i]); } } }

Kết quả:

Phần tử tại vị trí 0 trong arr là Java Phần tử tại vị trí 1 trong arr là C++ Phần tử tại vị trí 2 trong arr là PHP Phần tử tại vị trí 3 trong arr là Java

Tạo ArrayList có kiểu generic là String

File: wiki.xettuyentrungcap.vn

import wiki.xettuyentrungcap.vnyList; import wiki.xettuyentrungcap.vnator; public class ArrayListExample1 { public static void main(String args[]) { // Creating arraylist ArrayList<String> list = new ArrayList<String>(); // Add objects to arraylist wiki.xettuyentrungcap.vn(“Java”); wiki.xettuyentrungcap.vn(“C++”); wiki.xettuyentrungcap.vn(“PHP”); wiki.xettuyentrungcap.vn(“Java”); // Show list through Iterator Iterator<String> itr = wiki.xettuyentrungcap.vnator(); while (itr.hasNext()) { wiki.xettuyentrungcap.vnt(itr.next() + “, “); } // Show list through for-each wiki.xettuyentrungcap.vntln(); for (String obj : list) { wiki.xettuyentrungcap.vnt(obj + “, “); } // Show list through index wiki.xettuyentrungcap.vntln(); int size = wiki.xettuyentrungcap.vn(); for (int i = 0; i < size; i++) { wiki.xettuyentrungcap.vnt(list.get(i) + “, “); } } }

Tạo ArrayList có kiểu generic là đối tượng do người dùng định nghĩa

File: wiki.xettuyentrungcap.vn

import wiki.xettuyentrungcap.vnyList; class Student { private String name; private int age; public Student(String name, int age) { super(); wiki.xettuyentrungcap.vn = name; wiki.xettuyentrungcap.vn = age; } public String getName() { return name; } public void setName(String name) { wiki.xettuyentrungcap.vn = name; } public int getAge() { return age; } public void setAge(int age) { wiki.xettuyentrungcap.vn = age; } @Override public String toString() { return “Student@[name=” + name + “, age=” + age + “]”; } } public class ArrayListExample2 { public static void main(String[] args) { // Create listStudent ArrayList<Student> listStudent = new ArrayList<Student>(); // Create students Student student1 = new Student(“Bac”, 17); Student student2 = new Student(“Nam”, 20); Student student3 = new Student(“Trung”, 19); // Add objects to listStudent wiki.xettuyentrungcap.vn(student1); wiki.xettuyentrungcap.vn(student2); wiki.xettuyentrungcap.vn(student3); // Show listStudent for (Student student : listStudent) { wiki.xettuyentrungcap.vntln(student.toString()); } } }

Output:

Student@[name=Bac, age=17] Student@[name=Nam, age=20] Student@[name=Trung, age=19]

So sánh ArrayList vs LinkedList

ArrayList và LinkedList đều là lớp triển khai của List Interface. Vậy khi nào chúng ta sẽ sử dụng ArrayList và khi nào chúng ta sẽ sử dụng LinkedList? Chúng ta sẽ sử dụng ArrayList khi ứng dụng của chúng ta cần truy xuất phần tử nhiều hơn cập nhật và xóa phần tử và chúng ta sẽ sử dụng LinkedList khi ứng dụng của chúng ta cần cập nhật và xóa phần tử nhiều hơn là truy cập phần tử.

Tìm hiểu thêm về Sự khác nhau giữa ArrayList và LinkedList

Collection trong java LinkedList trong java

Bài viết liên quan:

  • Mảng (Array) trong java
  • ArrayList trong java
  • Sự khác nhau giữa Array với ArrayList
  • Sắp xếp các phần tử của List
  • Sự khác nhau giữa ArrayList và Vector
  • TreeSet trong java
  • HashSet trong java
  • HashMap trong java
  • Sự khác nhau giữa HashMap và Hashtable
  • List câu hỏi phỏng vấn Java Collection

Nguồn: https://xettuyentrungcap.edu.vn
Danh mục: Kiến thức

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button