ArrayList trong java

Lớp ArrayList trong java

Lớp ArrayList trong java là một lớp kế thừa lớp AbstractList & triển khai của Danh mục Interface trong Collections Framework nên nó sẽ có một vài đặc tính & bí quyết tương đồng với Danh mục. 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 ăn nhập (non-synchronized).
  • Lớp ArrayList cho phép truy cập bỗng dưng 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ự chuyển dịch nếu bất kỳ phần tử nào bị xoá khỏi danh mục.

Hierarchy của lớp ArrayList trong java

Lớp java.util.ArrayList được khai báo như sau:


public class ArrayList<Evàgt; extends AbstractListvàlt;Evàgt;
        implements Danh mụcvàlt;Evàgt;, RandomAccess, Cloneable, java.io.Serializable

Khởi tạo ArrayList trong java

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


ArrayList menu = new ArrayList(); // non-generic - kiểu cũ
ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;(); // generic - kiểu mới

Constructor của lớp ArrayList

Constructor
Miêu tả

ArrayList()
Nó được sử dụng để khởi tạo một danh mục mảng trống.

ArrayList(Collection ͼ)
Nó được sử dụng để xây dựng một danh mục mảng được khởi tạo với các phần tử của collection ͼ.

ArrayList(int capacity)
Nó được sử dụng để xây dựng một danh mục mảng mà có dung tích ban đầu được chỉ định.

Cách thức của lớp ArrayList

Cách thức
Miêu tả

boolean add(Object σ)
Nó được sử dụng để nối thêm phần tử được chỉ định vào cuối một danh mục.

void add(int index, Object element)
Nó được sử dụng để chèn phần tử element tại địa điểm index vào danh mục.

boolean addAll(Collection ͼ)
Nó được sử dụng để nối toàn bộ các phần tử trong collection ͼ vào cuối của danh mục, theo thứ tự chúng được trả về bởi bộ lặp iterator.

boolean addAll(int index, Collection ͼ)
Nó được sử dụng để chèn toàn bộ các phần tử trong collection ͼ vào danh mục, xuất phát điểm từ địa điểm index.

void retainAll(Collection ͼ)
Nó được sử dụng để xóa những phần tử không thuộc collection ͼ ra khỏi danh mục.

void removeAll(Collection ͼ)
Nó được sử dụng để xóa những phần tử thuộc collection ͼ ra khỏi danh mục.

int indexOf(Object σ)
Nó được sử dụng để trả về chỉ mục trong danh mục với sự hiện ra trước hết của phần tử được chỉ định, hoặc -1 nếu danh mục không chứa phần tử này.

int lastIndexOf(Object σ)
Nó được sử dụng để trả về chỉ mục trong danh mục với sự hiện ra cuối cùng của phần tử được chỉ định, hoặc -1 nếu danh mục không chứa phần tử này.

Object[] toArray()
Nó được sử dụng để trả về một mảng chứa toàn bộ các phần tử trong danh mục này theo đúng thứ tự.

Object[] toArray(Object[] α)
Nó được sử dụng để trả về một mảng chứa toàn bộ các phần tử trong danh mục 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 toàn bộ các phần tử từ danh mục này.

void trimToSize()
Nó được sử dụng để cắt dung tích của trổ tài ArrayList đó là kích cỡ danh mục hiện thời.

boolean contains(element)
Kết quả trả về là true nếu tìm ra element trong danh mục, trái lại trả về false.

Các Chẳng hạn ArrayList trong Java

Khởi tạo một ArrayList

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


// import gói thư viện java.util.ArrayList
import java.util.ArrayList;

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<Stringvàgt; listString = new ArrayList<Stringvàgt;();
    }
}

không chỉ thế, nếu tất cả chúng ta đã biết trước số lượng phần tử thì tất cả chúng ta có thể khai báo kèm với số lượng phần tử của nó. Chẳng hạn dưới đây sẽ khai báo một ArrayList có kiểu String & có 20 phần tử:


// import gói thư viện java.util.ArrayList
import java.util.ArrayList;

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<Stringvàgt; listString = new ArrayList<Stringvàgt;(20);
    }
}

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

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

Xem Thêm  Cách tạo liên kết có thể nhấp trong HTML bằng các ví dụ: Hướng dẫn - liên kết có thể nhấp vào mã html

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


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class DuyetArrayList1 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");
        // hiển thị các phần tử của menu
        System.out.println("Các phần tử có trong list là: ");
        System.out.println(menu);
    }
}

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 vn.viettuts.arraylist;

import java.util.ArrayList;

public class DuyetArrayList2 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");
        // sử dụng vòng lặp for - hiển thị các phần tử của menu
        System.out.println("Các phần tử có trong list là: ");
        for (int ι = 0; ι < menu.size(); ι++) {
            System.out.println(menu.get(ι));
        }
    }
}

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 tôn tạo


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class DuyetArrayList3 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");
        // sử dụng vòng lặp for tôn tạo - hiển thị các phần tử của menu
        System.out.println("Các phần tử có trong list là: ");
        for (String str : menu) {
            System.out.println(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 tất cả chúng ta cần phải import gói thư viện java.util.Iterator của Java.


package vn.viettuts.arraylist;

import java.util.ArrayList;
import java.util.Iterator;

public class DuyetArrayList4 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");
        // sử dụng Iterator - hiển thị các phần tử của menu
        Iteratorvàlt;Stringvàgt; iterator = menu.iterator();
        System.out.println("Các phần tử có trong list là: ");
        while (iterator.hasNext()) {
            System.out.println((String) iterator.next());
        }
    }
}

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 Danh mục 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 tất cả chúng ta cần phải import gói thư viện java.util.ListIterator của Java.


package vn.viettuts.arraylist;

import java.util.ArrayList;
import java.util.ListIterator;

public class DuyetArrayList5 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");
        // sử dụng ListIterator - hiển thị các phần tử của menu
        ListIteratorvàlt;Stringvàgt; iterator = menu.listIterator();
        System.out.println("Các phần tử có trong list là: ");
        while (iterator.hasNext()) {
            System.out.println((String) iterator.next());
        }
    }
}

Kết quả:

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

Các bí quyết addAll(), removeAll(), retainAll() của lớp ArrayList

Chẳng hạn sau minh họa cách dùng các bí quyết addAll(), removeAll(), retainAll() của lớp ArrayList trong Java:


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class PhuongThucArrayList1 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // Add objects to menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");

        System.out.println("ví dụ sử dụng phương thức addAll()");
        System.out.println("-----------------------------------");
        // thêm các phần tử của menu vào listA
        ArrayList<Stringvàgt; listA = new ArrayList<Stringvàgt;();
        listA.addAll(menu);
        System.out.print("listA:");
        showList(listA);

        System.out.println("nví dụ sử dụng phương thức retainAll()");
        System.out.println("-----------------------------------");
        // khởi tạo listB
        ArrayList<Stringvàgt; listB = new ArrayList<Stringvàgt;();
        listB.add("Java");
        // xóa những phần tử không thuộc listB khỏi listA
        listA.retainAll(listB);
        System.out.print("listA:");
        showList(listA);

        System.out.println("nví dụ sử dụng phương thức removeAll()");
        System.out.println("-----------------------------------");
        // xóa những phần tử thuộc listB  khỏi menu
        menu.removeAll(listB);
        System.out.print("list:");
        showList(menu);
    }

    public static void showList(ArrayList<Stringvàgt; menu) {
        // Show menu through for-each
        for (String obj : menu) {
            System.out.print("t" + obj + ", ");
        }
        System.out.println();
    }
}

Kết quả:

chẳng hạn sử dụng bí quyết addAll()
-----------------------------------
listA:	Java, 	₵++, 	PHP, 	Java, 

chẳng hạn sử dụng bí quyết retainAll()
-----------------------------------
listA:	Java, 	Java, 

chẳng hạn sử dụng bí quyết removeAll()
-----------------------------------
menu:	₵++, 	PHP, 

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

Java phân phối cho tất cả chúng ta bí quyết 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 xuất phát điểm từ 0.


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class TruyCapArrayList1 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");
        
        // truy cập phần tử có chỉ số 3 của menu
        System.out.println(menu.get(3));
    }
}

Kết quả:

Java

Update giá trị của phần tử Arraylist

Để update giá trị của phần tử trong ArrayList, Java phân phối cho tất cả chúng ta bí quyết set(index, element), trong đó index là chỉ số của phần tử cần update & element là phần tử mới để thay thế.


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class CapNhatArrayList1 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");

        System.out.println("list trước khi cập nhật: ");
        System.out.println(menu);
        // update giá trị cho phần tử có chỉ số là 3 (Java)
        menu.set(3, "Python");
        System.out.println("list trước khi cập nhật: ");
        System.out.println(menu);
    }
}

Kết quả:

menu trước khi update: 
[Java, C++, PHP, Java]
menu trước khi update: 
[Java, C++, PHP, Python]

Xóa phần tử ArrayList

Để xóa phần tử trong ArrayList, Java phân phối cho tất cả chúng ta 2 bí quyết có sẵn này là bí quyết clear() & bí quyết remove().

Xem Thêm  thay đổi cột đổi tên bảng trong cơ sở dữ liệu oracle - thay đổi bảng để thay đổi tên cột

Cách thức clear()

Cách thức clear() sẽ xóa toàn bộ các phần tử có trong ArrayList. Sau đây là chẳng hạn minh họa bí quyết này.


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class XoaArrayList1 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Python");

        System.out.println("Số phần tử của list ban đầu : " + menu);
        System.out.println("Các phần tử của list ban đầu: " + menu.size());
        // clear menu
        menu.clear();
        System.out.println("nSố phần tử của list sau khi clear: " + menu);
        System.out.println("Các phần tử của list sau khi clear: " + menu.size());
    }
}

Kết quả:

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

Số phần tử của menu sau khoảng thời gian clear: []
Các phần tử của menu sau khoảng thời gian clear: 0

Cách thức remove()

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


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class XoaArrayList1 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Python");

        System.out.println("Số phần tử của list ban đầu : " + menu);
        System.out.println("Các phần tử của list ban đầu: " + menu.size());
        // remove phần tử có chỉ số index = 1 khỏi menu
        menu.remove(1);
        System.out.println("nSố phần tử của list sau khi remove phan tu co index = 1: " 
                + menu);
        System.out.println("Các phần tử của list sau khi remove phan tu co index = 1: " 
                + menu.size());
        // remove phần tử có chỉ số index = 1 khỏi menu
        menu.remove("PHP");
        System.out.println("nSố phần tử của list sau khi remove phan tu "PHP": " 
                + menu);
        System.out.println("Các phần tử của list sau khi remove phan tu "PHP": " 
                + menu.size());
    }
}

Kết quả:

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

Số phần tử của menu sau khoảng thời gian remove phan tu co index = 1: [Java, PHP, Python]
Các phần tử của menu sau khoảng thời gian remove phan tu co index = 1: 3

Số phần tử của menu sau khoảng thời gian remove phan tu "PHP": [Java, Python]
Các phần tử của menu sau khoảng thời gian 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ì tất cả chúng ta có 3 bí quyết 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ử, tất cả chúng ta sẽ sử dụng bí quyết contains() . Kết quả trả về là true nếu tìm ra, trái lại trả về false.


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class TimKiemArrayList1 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Python");
        
        // kiểm soát xem PHP có tồn tại trong menu hay không?
        System.out.println(menu.contains("PHP"));
        // kiểm soát xem ANDROID có tồn tại trong menu hay không?
        System.out.println(menu.contains("ANDROID"));
    }
}

Kết quả:

true
false

Tìm kiếm địa điểm hiện ra trước hết của 1 phần tử trong ArrayList.

Xem Thêm  Chương trình Java để lấy kích thước của tệp đã cho theo byte, KiloByte và MegaByte - kích thước byte trong java

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


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class TimKiemArrayList2 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Python");
        
        // kiểm soát xem Java có tồn tại trong menu hay không?
        System.out.println(menu.indexOf("Java"));
        // kiểm soát xem ANDROID có tồn tại trong menu hay không?
        System.out.println(menu.indexOf("ANDROID"));
    }
}

Kết quả:

0
-1

Tìm kiếm địa điểm hiện ra cuối cùng của 1 phần tử trong Danh mục.

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


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class TimKiemArrayList3 {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");
        
        // kiểm soát xem Java có tồn tại trong menu hay không?
        System.out.println(menu.lastIndexOf("Java"));
        // kiểm soát xem ANDROID có tồn tại trong menu hay không?
        System.out.println(menu.lastIndexOf("ANDROID"));
    }
}

Kết quả:

3
-1

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

Cách thức toArray() trong Java được dùng để chuyển hóa một ArrayList sang mảng tương ứng. Sau đây là chẳng hạn minh họa bí quyết này:


package vn.viettuts.arraylist;

import java.util.ArrayList;

public class ConvertToArray {
    public static void main(String[] args) {
        // khai báo 1 ArrayList có tên là menu
        // có kiểu là String
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // thêm các phần tử vào menu
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");

        // sử dụng bí quyết toArray() chuyển menu thành mảng
        // kết quả của bí quyết này sẽ trả về mảng arr
        Object[] arr = menu.toArray();

        // hiển thị các phần tử có trong mảng arr
        for (int ι = 0; ι < arr.length; ι++) {
            System.out.println("Phần tử tại vị trí " + ι + " "
                    + "trong arr là " + arr[i]);
        }
    }
}

Kết quả:

Phần tử tại địa điểm 0 trong arr là Java
Phần tử tại địa điểm 1 trong arr là ₵++
Phần tử tại địa điểm 2 trong arr là PHP
Phần tử tại địa điểm 3 trong arr là Java

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

File: ArrayListExample1.java


import java.util.ArrayList;
import java.util.Iterator;

public class ArrayListExample1 {
    public static void main(String args[]) {
        // Creating arraylist
        ArrayList<Stringvàgt; menu = new ArrayList<Stringvàgt;();
        // Add objects to arraylist
        menu.add("Java");
        menu.add("C++");
        menu.add("PHP");
        menu.add("Java");
        // Show menu through Iterator
        Iteratorvàlt;Stringvàgt; itr = menu.iterator();
        while (itr.hasNext()) {
            System.out.print(itr.next() + ", ");
        }
        // Show menu through for-each
        System.out.println();
        for (String obj : menu) {
            System.out.print(obj + ", ");
        }
        // Show menu through index
        System.out.println();
        int size = menu.size();
        for (int ι = 0; ι < size; ι++) {
            System.out.print(menu.get(ι) + ", ");
        }
    }
}

Tạo ArrayList có kiểu generic là đối tượng do người dùng khái niệm

File: ArrayListExample2.java


import java.util.ArrayList;

class Student {
    private String name;
    private int age;
    public Student(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student@[name=" + name + ", age=" + age + "]";
    }
}

public class ArrayListExample2 {
    public static void main(String[] args) {
        // Create listStudent
        ArrayList<Studentvàgt; listStudent = new ArrayList<Studentvàgt;();
        // Create students
        Student student1 = new Student("Bac", 17);
        Student student2 = new Student("Nam", 20);
        Student student3 = new Student("Trung", 19);
        // Add objects to listStudent
        listStudent.add(student1);
        listStudent.add(student2);
        listStudent.add(student3);
        // Show listStudent
        for (Student student : listStudent) {
            System.out.println(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 & LinkedList đều là lớp triển khai của Danh mục Interface. Vậy lúc nào tất cả chúng ta sẽ sử dụng ArrayList & lúc nào tất cả chúng ta sẽ sử dụng LinkedList? Tất cả chúng ta sẽ sử dụng ArrayList khi áp dụng của các bạn cần truy xuất phần tử nhiều hơn update & xóa phần tử & tất cả chúng ta sẽ sử dụng LinkedList khi áp dụng của các bạn cần update & xóa phần tử nhiều hơn là truy cập phần tử.

Tham khảo thêm về Sự khác nhau giữa ArrayList & LinkedList

Viết một bình luận