Sự khác biệt giữa Danh sách và ArrayList trong Java

Tác Giả: Laura McKinney
Ngày Sáng TạO: 2 Tháng Tư 2021
CậP NhậT Ngày Tháng: 15 Có Thể 2024
Anonim
Sự khác biệt giữa Danh sách và ArrayList trong Java - Công Nghệ
Sự khác biệt giữa Danh sách và ArrayList trong Java - Công Nghệ

NộI Dung


List và ArrayList là các thành viên của khung Collection. Danh sách là một tập hợp các phần tử trong một chuỗi trong đó mỗi phần tử là một đối tượng và các phần tử được truy cập bởi vị trí (chỉ mục). ArrayList tạo ra một mảng động của các đối tượng tăng hoặc giảm kích thước bất cứ khi nào cần thiết. Sự khác biệt chính giữa List và ArrayList là Danh sách là một giao diện và Lập danh sách là một lớp học Hãy để chúng tôi nghiên cứu sự khác biệt giữa Danh sách và ArrayList với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.

  1. Biểu đồ so sánh
  2. Định nghĩa
  3. Sự khác biệt chính
  4. Phần kết luận

Biểu đồ so sánh

Cơ sở để so sánhDanh sáchLập danh sách
Căn bảnDanh sách là một giao diệnArrayList là một Class Collection tiêu chuẩn.
Cú phápDanh sách giao diệnlớp ArrayList
Mở rộng / Thực hiệnGiao diện danh sách mở rộng Bộ sưu tập Khung.ArrayList mở rộng AbstractList và thực hiện Giao diện danh sách.
Không gian tênSystem.Collections.Generic.Hệ thống. Bộ sưu tập.
Công việcNó được sử dụng để tạo một danh sách các yếu tố (đối tượng) được liên kết với số chỉ mục của chúng.ArrayList được sử dụng để tạo một mảng động có chứa các đối tượng.


Định nghĩa của danh sách

Danh sách là một giao diện mà mở rộng Bộ sưu tập khuôn khổ. Giao diện danh sách mô tả bộ sưu tập các yếu tố được sắp xếp tuần tự. Giao diện danh sách được thực hiện bởi các lớp bộ sưu tập tiêu chuẩn sau đây như ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Giao diện danh sách có các yếu tố được liên kết với số chỉ mục của chúng. Bạn có thể truy cập một phần tử trong danh sách theo vị trí (chỉ mục) của nó trong danh sách. Một danh sách được tạo bằng giao diện Danh sách bắt đầu với chỉ mục dựa trên số không.

Ngoài các phương thức được kế thừa bởi khung công tác Collection, giao diện List cũng xác định một số phương thức của riêng nó. Các phương thức được thêm vào bởi giao diện List là, thêm (int, E)add ALL (int, Collection). Các phương thức này thêm một phần tử vào danh sách theo chỉ mục của chúng. Các phương thức trong danh sách có thể đưa ra một ngoại lệ như Không hỗ trợOperationException nếu phương thức không thể sửa đổi danh sách. Khi một đối tượng trong danh sách không tương thích với đối tượng khác trong danh sách, thì ClassCastException bị ném. Các phần tử không được phép trong danh sách nếu bạn cố chèn một đối tượng null vào danh sách, NullPulumException được ném.


Bạn có thể có được một yếu tố từ danh sách bằng cách sử dụng được() phương pháp. Bạn có thể đặt giá trị của một phần tử trong danh sách bằng cách sử dụng bộ() phương pháp. Bạn cũng có thể lấy danh sách con từ danh sách bằng phương thức danh sách con (). Nó trở nên thuận tiện để hoạt động trên danh sách phụ thay vì danh sách.

Định nghĩa của ArrayList

Một trong các lớp Collection tiêu chuẩn là ArrayList mở rộng Tóm tắt lớp và cũng thực hiện Danh sách giao diện. Lớp ArrayList được sử dụng để tạo các mảng động phát triển và thu hẹp bất cứ khi nào cần thiết. Danh sách được tạo bằng lớp ArrayList không có gì ngoài mảng các đối tượng. Trong Java, mảng tiêu chuẩn có độ dài cố định, vì vậy, bạn phải biết trước kích thước của mảng. Nhưng, nó có thể là trường hợp mà bạn có thể không biết chiều dài của mảng bạn cần cho đến thời gian chạy. Do đó, khung công tác Collection đã giới thiệu lớp ArrayList để khắc phục vấn đề này.

ArrayList có các hàm tạo tạo mảng với dung lượng nội bộ của nó. Mặc dù dung lượng của đối tượng của lớp ArrayList tự động tăng khi các phần tử được thêm vào mảng, nhưng bạn vẫn có thể tăng khả năng của đối tượng ArrayList theo cách thủ công Đảm bảoCapacity (). Tốt hơn là tăng dung lượng của mảng ban đầu thay vì phân bổ lại bộ nhớ sau này. Bởi vì việc phân bổ lại tốn kém hơn so với việc phân bổ bộ nhớ cùng một lúc.

  1. Một trong những khác biệt quan trọng nhất giữa List và ArrayList là danh sách đó là một giao diện và ArrayList là một Bộ sưu tập tiêu chuẩn lớp học.
  2. Giao diện danh sách mở rộng Bộ sưu tập trong khi đó, ArrayList mở rộng Tóm tắt Lớp và nó thực hiện Danh sách giao diện.
  3. Không gian tên cho giao diện Danh sách là System.Collection.Generic trong khi đó, không gian tên cho ArrayList là System.Collection.
  4. Giao diện danh sách tạo ra một tập hợp các phần tử được lưu trữ theo trình tự và được xác định hoặc truy cập bằng số chỉ mục của chúng. Mặt khác, ArrayList tạo ra một mảng các đối tượng trong đó mảng có thể tự động phát triển khi được yêu cầu.

Phần kết luận:

ArrayList khắc phục vấn đề của một mảng tĩnh trong Java tiêu chuẩn, tức là mảng không thể tăng kích thước một khi nó được tạo. Khi một mảng được tạo bằng ArrayList, một mảng động được tạo có thể tăng và thu nhỏ kích thước khi cần. Lớp ArrayList tiêu chuẩn của Bộ sưu tập mở rộng giao diện Danh sách.