- vừa được xem lúc

Hiểu biết sự khác biệt giữa ArrayList và List trong Java

0 0 17

Người đăng: Nguyễn Ngọc Trung

Theo Viblo Asia

1. Sự khác biệt trong việc khai báo

a. ArrayList

ArrayList<Integer> array = new ArrayList<Integer>();

Đoạn code trên khai báo một biến array kiểu ArrayList. Và vì sử dụng trực tiếp lớp ArrayList làm class triển khai, nên bạn có thể truy cập vào các phương thức và chức năng cụ thể của ArrayList.

Ví dụ:

array.ensureCapacity(100); // Một phương thức dành riêng cho ArrayList

b. List

List<Integer> array = new ArrayList<Integer>();

Ở đây, biến array được khai báo với kiểu List. Mặc dù sử dụng ArrayList làm lớp triển khai , nhưng chỉ các phương thức của List được sử dụng.

Ví dụ:

// array.ensureCapacity(100); // Không thể sử dụng vì List không có phương thức này // Dễ dàng chuyển đổi sang các lớp List khác như LinkedList
array = new LinkedList<Integer>();

2. Sự khác biệt giữa List và ArrayList

a. List

  • List là một interface, nó định nghĩa các phương thức
  • Có nhiều lớp triển khai như ArrayList, LinkedList,...
  • Sử dụng List giúp viết code linh hoạt không phụ thuộc vào lớp triển khai nào cụ thể.

b. ArrayList

  • ArrayList là một lớp triển khai từ List.
  • Là triển khai dựa trên mảng, cho phép truy cập ngẫu nhiên nhanh chóng.
  • Có các phương thức và chức năng cụ thể, có thể truy cập trực tiếp khi sử dụng.

3. Điểm quan trọng khi sử dụng

  • Sử dụng **ArrayList<Integer> array = new ArrayList<Integer>(); ** khi bạn muốn sử dụng các tính năng cụ thể của ArrayList.
  • Sử dụng **List<Integer> array = new ArrayList<Integer>(); ** khi bạn muốn tăng tính linh hoạt và dễ bảo trì của code. Điều này hữu ích khi cần thay đổi cài đặt sau này.

4. Ví dụ cụ thể

// Sử dụng List
List<Integer> array = new ArrayList<Integer>();
array.add(1);
array.add(2);
array.add(3); // Thay đổi lớp triển khai nhưng không gây ảnh hưởng
array = new LinkedList<Integer>();
array.add(4);
array.add(5);

Việc sử dụng kiểu interface giúp giảm thiểu ảnh hưởng khi thay đổi cài đặt sau này.

5. Tóm tắt

**ArrayList<Integer> array = new ArrayList<Integer>(); ** Sử dụng trực tiếp ArrayList, cho phép truy cập vào các phương thức và chức năng đặc biệt của ArrayList. **List<Integer> array = new ArrayList<Integer>(); ** Sử dụng List, tăng tính linh hoạt và dễ bảo trì của code. Đặc biệt hữu ích khi cần thay đổi cài đặt sau này.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 302

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 277

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 50

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 194

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 71

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 139