Sự khác biệt giữa Array và ArrayList Sự khác nhau giữa
Array and ArrayList là gì?
Cả Array và ArrayList đều là các cấu trúc dữ liệu dựa trên chỉ số thường được sử dụng trong các chương trình Java. Về mặt khái niệm, ArrayList được hỗ trợ bởi mảng, tuy nhiên, sự hiểu biết sự khác biệt giữa hai là chìa khóa để trở thành một nhà phát triển Java tuyệt vời. Đây là một bước cơ bản để bắt đầu, đặc biệt là những người mới bắt đầu mới bắt đầu viết mã. Mặc dù cả hai đều được sử dụng để lưu trữ các phần tử trong Java, có thể là nguyên thủy hoặc vật thể, nhưng chúng có phần chia sẻ hợp lý về các tính năng và hiệu suất. Sự khác biệt lớn giữa hai là Array là tĩnh trong khi ArrayList có tính năng động. Bài viết này so sánh hai khía cạnh khác nhau để bạn có thể chọn một trong những khác.
Sự khác biệt giữa Array và ArraylistResizable
- Một trong những sự khác biệt quan trọng và đáng chú ý giữa hai cấu trúc dữ liệu là Array có tính chất tĩnh trong đó có nghĩa là kiểu dữ liệu chiều dài cố định trong khi ArrayList có tính năng động trong tự nhiên có nghĩa là cấu trúc dữ liệu có độ dài thay đổi. Về mặt kỹ thuật, chiều dài của mảng không thể thay đổi hoặc sửa đổi khi đối tượng Array được tạo ra. Nó chứa bộ sưu tập tuần tự của các phần tử cùng kiểu dữ liệu. Mảng trong Java hoạt động khác với chức năng trong C / C ++. ArrayList, mặt khác, có thể thay đổi kích cỡ của chính nó và các mảng có thể phát triển khi họ cần. Vì nó là một cấu trúc dữ liệu động, nên các phần tử có thể được thêm vào và gỡ bỏ khỏi danh sách.
Bạn không thể tạo ra các mảng của các lớp Giao diện Generic trong Java vì vậy mảng và các Generics không đi đôi với nhau làm cho nó không thể tạo ra Generic Array cho một lý do cơ bản mà các mảng là hiệp biến biến đổi trong khi generics là bất biến. Trong khi Array là một cấu trúc dữ liệu có độ dài cố định, nó chứa các đối tượng cùng lớp hoặc các kiểu nguyên thủy của kiểu dữ liệu cụ thể. Vì vậy, nếu bạn cố gắng lưu trữ các kiểu dữ liệu khác với loại dữ liệu khác được chỉ định trong khi tạo đối tượng Array, nó chỉ đơn giản là ném "ArrayStoreException". ArrayList, mặt khác, không hỗ trợ Generics để đảm bảo loại an toàn.
- Primitive
Các kiểu dữ liệu nguyên thủy như int, double, long và char không được phép trong ArrayList. Nó khá giữ các đối tượng và nguyên thủy không được coi là đối tượng trong Java. Mặt khác, các mảng có thể giữ nguyên thủy cũng như các đối tượng trong Java vì nó là một trong những cấu trúc dữ liệu hiệu quả nhất trong Java để lưu trữ các đối tượng. Đó là một kiểu dữ liệu tổng hợp được thiết kế để chứa các đối tượng có thể có cùng loại hoặc loại khác nhau.
Chiều dài- Để có được chiều dài của mảng, mã cần truy cập thuộc tính length vì bạn phải biết độ dài để thực hiện các thao tác trên Array.Trong khi ArrayList sử dụng phương thức size () để xác định kích thước của ArrayList, nó khá khác với việc xác định chiều dài của Array. Thuộc tính method size () xác định số lượng các phần tử trong ArrayList, do đó là dung lượng của ArrayList.
Ví dụ
- :
public class ArrayLengthTest {
public static void main (String [] args) { ArrayList arrList = new ArrayList ();
Chuỗi [] mục = {"Một", "Hai", "Ba"};
cho (String str: items) {
arrList. thêm (str);
}
int size = mục. kích thước();
Hệ thống. ngoài. println (kích cỡ);
}
}
Triển khai
Array là một thành phần lập trình Java được tạo tự động và sử dụng toán tử gán để chứa các phần tử, trong khi ArrayList sử dụng thuộc tính add () để chèn các phần tử. ArrayList là một lớp từ khung bộ sưu tập trong Java sử dụng một tập hợp các phương pháp xác định để truy cập và sửa đổi các phần tử. Kích thước của một ArrayList có thể tăng hoặc giảm tự động. Các phần tử trong một mảng được lưu trữ trong vị trí bộ nhớ liên tục và kích thước của nó vẫn tĩnh trong suốt.
Hiệu suất
- Mặc dù cả cấu trúc dữ liệu cung cấp hiệu suất tương tự như ArraySlug được hỗ trợ bởi mảng, nhưng có một chút cạnh hơn so với thời gian CPU và sử dụng bộ nhớ. Hãy nói, nếu bạn biết kích thước của mảng, bạn có thể đi với ArrayList. Tuy nhiên, iterating trên Array là một chút nhanh hơn iterating trên một ArrayList. Nếu chương trình liên quan đến một số lượng lớn các primitive, một mảng sẽ thực hiện tốt hơn đáng kể so với ArrayList, về mặt thời gian và bộ nhớ. Mảng là một ngôn ngữ lập trình cấp thấp có thể được sử dụng trong triển khai bộ sưu tập. Tuy nhiên, hiệu suất có thể khác nhau tùy thuộc vào hoạt động mà bạn đang thực hiện.
Array Vs. Arraylist
- Array
ArrayList