Chuyển đến nội dung chính

Khác nhau giữa Array và ArrayList và HashMap

  • Collection bản chất tập các lớp dùng để lưu trữ danh sách khả năng tự co giãn khi danh sách thay đổi: Thêm , sửa, xóa, chèn
  • Hai lớp Collection thường được sử dụng nhiều nhất ArrayList Hashmap
Giới thiệu về ArrayList
  • ArrayList sử dụng cấu trúc mảng để lưu trữ phần tử, tuy nhiên hai đặc điểm khác mảng:
  • Không cần khai báo trước kiểu phần tử.
  • Không cần xác định trước số lượng phần tử (kích thước mảng).
  • Nó khnăng truy cp phn tngu nhiên (Do tha kế tinterface RandomAccess).
Phương thức khởi tạo
  • ArrayList()
  • ArrayList(Collection c)
  • ArrayList(int initialCapactity)
Các phương thức chính
  • add(Object o)
  • remove(Object o)
  • get(int index)
  • size()
  • isEmpty()
  • contains(Object o)
  • clear()
Giới thiệu về HashMap
  • kiu tp hp từ đin, HashMap cho phép truy xut trc tiếp ti mt đối tượng bng khoá duy nht ca . Chai khoá đối tượng thể thuộc bất cứ kiểu nào.
qphương thức khởi tạo
  • HashMap()
  • HashMap(Collection c)
  • HashMap(int capacity)
qCác phương thức chính
  • put(Object key, Object value)
  • get(Object key)
  • remove(Object key)
  • containsKey(Object key)
  • containsValue(Object value)
  • size()
  • isEmpty
Array:
Mảng một loại biến đặc biệt, bao gồm một dãy các ô nhớ nhiều ô nhớ con cho phép biểu diễn thông tin dạng danh sách trong thực tế
  • Các phần tử trong mảng cùng kiểu dữ liệu với nhau
  • Lợi ích của việc sử dụng mảng
  • Mảng cách tốt nhất cho phép quản nhiều phần tử dữ liệu cùng kiểu tại cùng một thời điểm
  • Mảng tạo ra sự tối ưu trong việc quản bộ nhớ so với việc sử dụng nhiều biến cho cùng một chức năng
  • Bộ nhớ thể được gán cho mảng chỉ khi mảng thực sự được sử dụng. Do đó, bộ nhớ không bị tiêu tốn cho mảng ngay khi bạn khai báo mảng.
Khai báo khởi tạo
  • Khai báo không khởi tạo kích thước giá trị
  • KiểudDữLiệu[] TênMảng;
  • KiểuDữLiệu TênMảng[];
  • § dụ: int[] a; int a[];


// import java.util.Arrays;
  • int array[] = { 2, 5, -2, 6, -3, 8, 0, 7, -9, 4 };
  • int array1[] = { 2, 5, 6, -3, 8};
  • // Sắp xếp mảng số nguyên
  • Arrays.sort(array);
  • // So sánh hai mảng số nguyên array1 array
  • array1.equals(array);
  • // Gán giá trị cho các phần tử trong mảng array1
  • Arrays.fill(array1, 10); // 10, 10, 10, 10, 10
  • // Sao chép mảng array1 sang array2
  • int[] arr2 = Arrays.copyOf(arr1, 6); // 10 10 10 10 10 0


hạn chế mảng:
Mảng có kích cỡ và số chiều cố định nên khó khăn trong việc mở rộng ứng dụng.
  • Các phần tử được đặt và tham chiếu một cách liên tiếp nhau trong bộ nhớ nên khó khăn cho việc xóa một phần tử ra khỏi mảng.

Khác nhau giữa Array và ArrayList


Sự khác biệt giữa Array và ArrayList là câu hỏi phổ biến cho người mới bắt đầu đặc biệt là những người bắt đầu với code trong C và C++ và thích sử dụng Array. Cả hai Array và ArrayList được sử dụng để lưu trữ các phần tử hoặc đối tượng. Chính sự khác biệt giữa Array và ArrayList trong Java là tính chất tĩnh của Array và tính chất động của ArrayList. Sau khi tạo ra bạn không thể thay đổi kích thước của Array nhưng ArrayList có thể đặt lại kích thước chính nó khi cần thiết. Một khác biệt đáng chú ý giữa ArrayList và Array, Array là một phần lõi lập trình Java và có cú pháp và ngữ nghĩa đặc biệt hỗ trợ Java, ArrayList là một phần của Collection framework cùng với các lớp phổ biến khác như Vector, Hashtable, HashMap hoặc LinkedList.

Array và ArrayList trong Java

Đầu tiên sự khác biệt chính giữa Array và ArrayList trong Java, Array là cấu trúc dữ liệu chiều dài cố định trong khi ArrayList là biến chiều dài lớp Collestion. Bạn không thể thay đổi chiều dài của Array được tạo ra trong Java nhưng ArrayList định lại kích thước chính nó tùy thuộc vào năng lực và hệ số tải. Từ ArrayList là nội bộ được hỗ trợ bởi mảng trong Java, bất kỳ hoạt động thay đổi kích thước trong ArrayList sẽ làm chậm hiệu suất vì nó liên quan đến việc tạo ra mảng mới và sao chép nội dung từ mảng cũ sang mảng mới.

2) Một sự khác biệt giữa Array và ArrayList trong Java là không thể sử dụng Generics cùng với Array, như ví dụ mảng về các loại kiểu của nó có thể giữ và ném ArrayStoreException, nếu bạn cố gắng để lưu trữ kiểu đó là không thể chuyển thành kiểu Array. ArrayList cho phép sử dụng Generics để đảm bảo kiểu an toàn.

3) Tất cả các kiểu mảng cung cấp chiều dài biến biểu thị chiều dài của mảng ArrayList trong khi cung cấp phương thức size() để tính toán kích thước của ArrayList trong Java.

4) Một trong nhiều sự khác biệt lớn giữa ArrayList và Array là bạn không thể lưu trữ nguyên thủy trong ArrayList, nó chỉ có thể chứa các đối tượng. Trong khi mảng có thể chứa cả nguyên thủy và đối tượng trong Java. Mặc dù autoboxing của Java có thể cung cấp lưu trữ nguyên thủy trong ArrayList, nó thực sự tự động chuyển đổi nguyên thủy đến đối tượng. 

Ví dụ:
ArrayList<Integer> integerList = new ArrayList<Integer>();
integerList.add(1); //here we are not storing primitive in ArrayList, instead autoboxing will convert int primitive to Integer object

5) Java cung cấp phương thức add() để chèn phần tử vào ArrayList và bạn chỉ có thể sử dụng toán tử gán để lưu trữ phần tử vào mảng 

Ví dụ: Để lưu trữ đối tượng đến vị trí cụ thể sử dụng

Object[] objArray = new Object[10];
objArray[1] = new Object();

6) Một sự khác biệt thêm về Array vs ArrayList là có thể tạo ra instance của ArrayList mà không xác định kích thước, Java sẽ tạo ArrayList với kích thước mặc định nhưng bắt buộc cung cấp kích thước của mảng trong khi tạo ra cách trực tiếp hoặc gián tiếp bằng cách khởi tạo mảng khi tạo ra nó. Bằng cách này bạn cũng có thể khởi tạo ArrayList.

Đó là tất cả về sự khác biệt giữa mảng và ArrayList trong Java. Xét về hiệu suất Array và ArrayList cung cấp hiệu suất tương tự về thời gian liên tục để thêm hoặc nhận được yếu tố nếu biết chỉ số. Mặc dù tự động thay đổi kích thước của ArrayList có thể làm chậm chèn một chút

Nhận xét

Bài đăng phổ biến từ blog này

Entry Test của FPT

IQ - Kiểm tra tư duy logic (8/20) - GMAT- Kiểm tra khả năng tính toán trong thời gian ngắn (8/20) - Tiếng Anh (18-> 25/50) - Các bài thi chuyên môn - FE (8/20) IQ: lên mạng tìm "IQ test" là ra đầy. + GMAT: Những câu trắc nghiệm tính toán đơn giản kiểu như sau:  1 . Một shop thời trang sale off quần jeans 15 %, quần jeans giá 450 $, người mua đưa 500 $, hỏi cashier trả lại bao nhiêu $ tiền thừa.? 2 . 100 % là 180 , vậy 150 là bao nhiêu %? Tiếng anh: Cỡ như thi TOEIC thôi. Chuyên môn: Mobile thì trắc nghiệm Java. Qúa trình tuyển như sau :v Lần 1: Test IQ, Tiếng Anh( mình làm í ẹ khoảng 50% mà vẫn được) , Java Lân 2: được gọi điện lên :)) + Gioi thiệu bản thân + Họ chỉ hỏi các câu căn bản như: -. OOP: là gì, 4 tính chất, ví dụ, khác nhau giữa interface và abstract - CODE: hầu toàn các bài toán vòng for :)) , cẩn thận mấy câu kế thừa. SQL (distinct, view, function, cursor, store procedure, ...v.v.), nhớ có câu cộng 2 số int không dùng biến đệm hơi khoai haha + Nói ch...

Java: Java Package-Thư viện trong Java

Giới thiệu về Package Các bạn mới học lập trình Java thường không dể ý tới package vì các bạn toàn tạo file .java vào cùng 1 chỗ, không cần sắp xếp, không cần quản lý truy nhập. Nhưng để tăng kỹ năng lập trình với Java, các bạn cần phải tìm hiểu về package trong Java. Các bạn có thể tham khảo định nghĩa sau: Package được dùng để đóng gói các lớp trong chương trình lại với nhau thành một khối. Đây là cách tốt nhất để lưu trữ các lớp gần giống nhau hoặc có cùng một module thành một khối thống nhất – để đáp ứng 1 khối chức năng. Từ đây mình sẽ giới thiệu thêm với các bạn các câu lệnh nhâp khẩu,nó có định dạng như sau : Định dạng :  import javaPackageNameImport;    Nó giống như khai báo thư viện ở các ngôn ngữ lập trình khác.Như vậy,chỉ khi các bạn nhập khẩu chúng,các bạn mới có thể sử dụng thư viện mà chúng cung cấp cho ta. VD :    import java.util.Date;   import java.text.SimpleDateFormat; Lưu ý : -Các câu lệnh nhập khẩu rất nhiều và...