C so sánh arraylist và array năm 2024

Hôm nay chúng ta sẽ khám phá

ArrayList list = new ArrayList();

5lớp học. Đây là lớp đầu tiên trong một số lớp được gọi là bộ sưu tập . Trong Java, các bộ sưu tập là một chủ đề rộng lớn và hữu ích đến mức toàn bộ nhiệm vụ CodeGym được dành cho chúng.

Để hiểu đầy đủ cách các bộ sưu tập được cấu trúc và tất cả các sắc thái của chúng, trước tiên bạn cần tìm hiểu OOP, giao diện, kế thừa, kiến ​​thức cơ bản về đa luồng, v.v.

Vì vậy, hôm nay chúng ta sẽ chỉ làm quen với một loại tập hợp đơn giản nhất. Nhưng ở mức độ đủ sâu để bạn hiểu cách sử dụng và cách thức hoạt động của nó. Bây giờ, hãy gặp

ArrayList list = new ArrayList();

5bộ sưu tập .

cốt truyện

Tôi sẽ bắt đầu với một nền tảng nhỏ. Các lập trình viên thực sự không thích một khía cạnh của mảng: thực tế là kích thước của chúng không thể thay đổi được. Điều gì sẽ xảy ra nếu bạn cần lưu trữ thêm ba phần tử trong một mảng nhưng chỉ có một ô trống?

Giải pháp duy nhất cho giới hạn không gian của một mảng là tạo một mảng rất lớn để chứa tất cả các phần tử mà bạn có thể cần lưu trữ. Nhưng điều này thường là một sự lãng phí bộ nhớ. Nếu một mảng thường chứa hai hoặc ba phần tử nhưng thậm chí có khả năng rất nhỏ là nó cần lưu trữ 100 phần tử trong số đó, thì cần phải tạo một mảng có khả năng lưu trữ 100 phần tử.

Vậy các lập trình viên đã nghĩ ra điều gì? Họ đã viết

ArrayList list = new ArrayList();

5lớp, lớp này thực hiện công việc tương tự như

ArrayList list = new ArrayList();

9lớp, nhưng có thể thay đổi kích thước.

lớp ArrayList

Tên của

ArrayList list = new ArrayList();

5lớp được hình thành từ hai từ: Mảng + Danh sách.

ArrayList list = new ArrayList();

9là một mảng và

ArrayList list = new ArrayList();

2là một danh sách.

Mỗi

ArrayList list = new ArrayList();

5đối tượng chứa một mảng các phần tử bình thường. Khi bạn đọc các phần tử từ một

ArrayList list = new ArrayList();

5, đối tượng sẽ truy xuất chúng từ mảng bên trong của nó. Khi bạn viết các phần tử, nó sẽ ghi chúng vào mảng bên trong.

Lớp ArrayList thiếu tất cả những nhược điểm mà mảng có. Nó biết cách:

  • Lưu trữ các phần tử của một loại cụ thể
  • Tự động thay đổi kích thước danh sách
  • Thêm phần tử vào cuối danh sách
  • Chèn phần tử vào đầu hoặc giữa danh sách
  • Xóa các phần tử khỏi bất kỳ đâu trong danh sách

Để biết thêm chi tiết, xem bên dưới:


2. Tạo

ArrayList list = new ArrayList();

5đối tượng

Để tạo một

ArrayList list = new ArrayList();

5đối tượng, bạn cần viết mã như sau:

ArrayList name = new ArrayList();
ArrayList list = new ArrayList();

7Loại/lớp của bộ sưu tập ở đâu ,

ArrayList list = new ArrayList();

8là loại của các phần tử được lưu trữ trong

ArrayList list = new ArrayList();

5bộ sưu tập và

void add(Type value)

0là tên của một

void add(Type value)

1biến.

Biến

void add(Type value)

0có một loại chung. Nó bao gồm hai loại: loại bộ sưu tập được chỉ định trước, sau đó dấu ngoặc nhọn được sử dụng để chỉ loại phần tử được lưu trữ trong bộ sưu tập.

Ví dụ:

Mã số Sự miêu tả

ArrayList list = new ArrayList();

Danh sách các số nguyên

ArrayList list = new ArrayList();

Danh sách các chuỗi

ArrayList list = new ArrayList();

Danh sách các số thực

Không giống như mảng, các bộ sưu tập không thể lưu trữ các kiểu nguyên thủy, chỉ lưu trữ các kiểu tham chiếu . Vì vậy, nếu bạn cần một bộ sưu tập

void add(Type value)

3các s,

void add(Type value)

4thay vào đó hãy sử dụng lớp trình bao bọc.


3. Hoạt động với một

ArrayList list = new ArrayList();

5

Ban đầu, độ dài của danh sách mới được tạo bằng 0, vì nó chứa 0 phần tử. Nếu bạn thêm một phần tử vào danh sách, độ dài của nó sẽ tăng thêm 1. Nếu bạn xóa phần tử đã thêm, độ dài sẽ giảm về 0.

Bảng sau đây có thể cho bạn biết thêm về các phương thức của lớp

ArrayList list = new ArrayList();

5:

phương pháp Sự miêu tả

void add(Type value)

Thêm phần tử đã truyền vào danh sách

void add(int index, Type value)

Thêm một phần tử vào một vị trí cụ thể trong danh sách.

Type get(int index)

Trả về phần tử có chỉ số là

void add(Type value)

7

void set(int index, Type value)

Gán

void add(Type value)

8cho phần tử có chỉ số là

void add(Type value)

7

Type remove(int index)

Loại bỏ phần tử có chỉ số là

void add(Type value)

7. Trả về phần tử đã loại bỏ.

Type remove(Type value)

Loại bỏ phần tử mà bạn truyền vào phương thức. Nếu có nhiều hơn một phần tử như vậy, phần tử đầu tiên sẽ bị xóa.

ArrayList list = new ArrayList();

0 Xóa danh sách, nghĩa là xóa tất cả các phần tử khỏi danh sách.

ArrayList list = new ArrayList();

1 Kiểm tra xem danh sách có chứa

void add(Type value)

8.

ArrayList list = new ArrayList();

2 Kiểm tra xem danh sách có rỗng hay không. Nói cách khác, độ dài của danh sách có bằng không hay không.

ArrayList list = new ArrayList();

3 Trả về kích thước của danh sách, tức là số phần tử trong danh sách.

ArrayList list = new ArrayList();

4 Trả về một mảng chứa các phần tử của danh sách. Bạn cần truyền mảng cho phương thức.

Các phương thức này cho phép bạn thực hiện hầu hết mọi thứ bạn muốn với danh sách: hoán đổi phần tử, thêm phần tử và xóa phần tử. Bạn có thể xóa danh sách bằng một lệnh hoặc thậm chí chuyển đổi danh sách thành một mảng.



4. So sánh

ArrayList list = new ArrayList();

5và

ArrayList list = new ArrayList();

9

Tôi không nghĩ rằng chúng ta có thể tránh so sánh

ArrayList list = new ArrayList();

5và một mảng.

Chỉ có 4 hành động bạn có thể thực hiện với mảng:

  • Tạo một mảng
  • Nhận một phần tử theo chỉ mục
  • Đặt một phần tử theo chỉ mục
  • Lấy độ dài của mảng

Dưới đây là các thao tác này khi chúng áp dụng cho một mảng và một

ArrayList list = new ArrayList();

5:

Mảng Lập danh sách

ArrayList list = new ArrayList();

5

ArrayList list = new ArrayList();

6

ArrayList list = new ArrayList();

7

ArrayList list = new ArrayList();

8

ArrayList list = new ArrayList();

9

ArrayList list = new ArrayList();

0

ArrayList list = new ArrayList();

1

ArrayList list = new ArrayList();

2

Hãy so sánh cách thức

ArrayList list = new ArrayList();

5hoạt động của một mảng so với cách thức hoạt động của một mảng. Ví dụ: hãy thực hiện tác vụ này: "đọc 10 chuỗi từ bàn phím và hiển thị chúng trên màn hình theo thứ tự ngược lại"

Sử dụng mảng Sử dụng ArrayList

ArrayList list = new ArrayList();

3

ArrayList list = new ArrayList();

4

Sự tương tự là rõ ràng. Mọi thứ bằng cách nào đó ngắn hơn và rõ ràng hơn đối với mảng. Nhưng

ArrayList list = new ArrayList();

5cũng không khó: để lấy một phần tử, chúng ta sử dụng

void add(int index, Type value)

8phương thức; để thay đổi một phần tử,

void add(int index, Type value)

9phương thức; để lấy độ dài của danh sách,

Type get(int index)

0phương thức.