N8 4 – ạioskcalkc – ARRAY LIST 4. Introduction Java cung cấp một lớp ArrayList để cung cấp các tính – StuDocu

ARRAY LIST

4. Introduction

Java cung cấp một lớp ArrayList để cung cấp các tính năng tương tự như Vector:

-Dynamic size (kích thước động): mở rộng và thu nhỏ tự động

Trong Java, chúng ta cần khai báo độ dài của một mảng trước khi sử dụng. Khi đã khai báo kích
thước của một mảng rồi thì rất khó để thay đổi kích thước đó.

Để xử lý vấn đề này, chúng ta có thể sử dụng lớp ArrayList. Các lớp ArrayList có mặt trong gói
java cho phép chúng ta tạo ra các mảng có thể thay đổi kích thước.

Không giống như mảng, ArrayList (đối tượng của class ArrayList) có thể tự động điều chỉnh kích
cỡ của nó khi chúng ta thêm vào hoặc xóa đi các phần tử. Do đó, ArrayList còn được gọi là mảng
động.

-Generic (chung): cho phép bất kỳ kiểu dữ liệu tham chiếu nào nghĩa
tham số hóa kiểu dữ liệu. Tham số hóa kiểu dữ liệu rất quan trọng vì nó cho phép chúng ta
tạo ra và sử dụng một class, interface, method với nhiều kiểu dữ liệu khác nhau.

Một class, interface hay một method mà thực hiện trên một kiểu tham số xác định thì gọi

Generic.

-Các phương pháp hữu ích được xác định trước

  • Điểm giống nhau:

 Cả ArrayList và Vector đều cài đặt interface List.
 Đều duy trì thứ tự chèn của các phần tử.

  • Điểm khác nhau:

ArrayList Vector

Từ JDK 1 Từ JDK 1.

ArrayList là non-synchronized.

  • Đồng bộ trong java (Synchronization in
    java) là khả năng kiểm soát truy cập của
    nhiều luồng đến bất kỳ nguồn tài nguyên
    chia sẻ (shared resource).

Vector là synchronized.

Nhanh hơn

(vì nó là non-synchronized)

Chậm hơn vì nó là synchronized.

Tức là, trong môi trường đa luồng, các thread
giữ nó ở trong trạng thái runnable hoặc non-
runnable cho đến khi thread hiện tại giải
phóng đối tượng đó.

ArrayList tăng 50% kích thước hiện tại nếu
số phần tử vượt quá khả năng chứa của nó.

Vector tăng 100% nghĩa là tăng gấp đôi kích
thước hiện tại nếu số phần tử vượt quá khả
năng chứa của nó..

Tham khảo thêm:

gpcoder/2737-so-sanh-arraylist-va-vector-trong-
java/#Giong_nhau_cua_ArrayList_va_Vector

icancodeit.wordpress/2019/08/15/faq-su-khac-nhau-giua-arraylist-va-vector-trong-
java/

ArrayList được ưu tiên nếu bạn không cần đồng bộ hóa

  • Java hỗ trợ nhiều luồng và các luồng này có thể đọc / ghi vào các biến, đối tượng và tài nguyên
    giống nhau. **Đồng bộ hóa là một cơ chế để đảm bảo luồng Java đó có thể thực thi các phương
    thức được đồng bộ hóa của một đối tượng tại một thời điểm.

Khi sử dụng Vector / ArrayList, hãy luôn cố gắng khởi tạo ở mức lớn nhất dung lượng mà
chương trình của bạn sẽ cần, vì mở rộng mảng là tốn kém.

  • Mở rộng mảng: cấp phát một mảng lớn hơn và sao chép nội dung của mảng cũ sang một cái
    mới

Vậy khi nào sử dụng ArrayList hoặc Vector

import java.util;

Syntax:

// Khai báo tham chiếu ArrayList

ArrayList <E> myArrayList;

// Khởi tạo một đối tượng ArrayList rỗng

myArrayList = new ArrayList <E>;

Tóm tắt phương thức thường được sử dụng

boolean isEmpty ()
Trả về true nếu danh sách này không chứa
phần tử nào.

int size ()
Trả về số phần tử trong danh sách này.

boolean add (E e)

Thêm phần tử được chỉ định vào cuối danh
sách này.
Void add (int index, E element)

Chèn phần tử được chỉ định vào vị trí được
chỉ định trong danh sách này.
E remove (int index)
Loại bỏ phần tử ở vị trí được chỉ định trong
danh sách này.
boolean remove (Đối tượng o)
Loại bỏ sự xuất hiện đầu tiên của phần tử
được chỉ định khỏi điều này danh sách, nếu
nó có mặt.
E get (int index)
Trả về phần tử ở vị trí đã chỉ định trong danh
sách này.
int indexOf (Đối tượng o)
Trả về chỉ số của lần xuất hiện đầu tiên của
phần tử được chỉ định trong danh sách này,
hoặc -1 nếu danh sách này không chứa phần
tử.
boolean contains (Object elem)
Trả về true nếu danh sách này chứa phần tử
được chỉ định.
Tham khảo thêm: niithanoi.edu/vi-du-ve-cach-su-dung-arraylist-trong-java.html

viettuts/java-collection/arraylist-trong-java

4. Example:

import java.util;

public class Test_ArrayList {

public static void main(String[] args ) {

// Tao mot ArrayList

ArrayList<String> arlTest = new ArrayList<>();

// Kiem tra size cua arrayList

System.out("Size of ArrayList at creation: " + arlTest());

// Them vao ArrayList mot vai phan tu

arlTest("D");

arlTest("U");

arlTest("K");

arlTest("E");

// Kiem tra lai size sau khi da them moi

System.out("Size of ArrayList after adding elements: " + arlTest());

// Hiem thi ArrayList

System.out("List of all elements: " + arlTest);