Video: Java Cơ Bản 30 Sắp xếp và tìm kiếm với mảng trong java 2025
Lớp ArrayList được sử dụng là trong nhiều chương trình ứng dụng Android chỉ là đầu của bộ sưu tập Java tảng băng trôi. Thư viện Java có nhiều lớp tập hợp, mỗi cái có lợi thế riêng. Bảng có một danh sách rút gọn.
Tên lớp | Đặc điểm |
---|---|
ArrayList | Một mảng có thể định lại kích cỡ. |
LinkedList | Danh sách các giá trị, mỗi trường có một trường chỉ tới
tiếp theo trong danh sách. |
Stack | Một cấu trúc (phát triển từ dưới lên trên) được tối ưu hóa
để truy cập vào giá trị trên cùng. Bạn có thể dễ dàng thêm giá trị vào đầu hoặc xóa nó khỏi đầu. |
Queue | Một cấu trúc (phát triển ở một đầu) được tối ưu hóa cho
thêm giá trị vào một đầu (phía sau) và loại bỏ các giá trị từ đầu kia (mặt trước). |
PriorityQueue | Một cấu trúc, giống như một hàng đợi, cho phép các giá trị nhất định (có mức độ ưu tiên cao hơn)
di chuyển về phía trước. |
HashSet | Bộ sưu tập không chứa giá trị trùng lặp. |
HashMap | Một bộ sưu tập các cặp khóa / giá trị. |
. allmycode. bộ sưu tập; public class SimpleCollectionsDemo {public static void main (String [] args) {
Chuỗi [] myArray = new Chuỗi [4]; myArray [0] = "Xin chào"; myArray [1] = ","; myArray [2] = "độc giả"; myArray [3] = "!"; cho (int i = 0; i <4; i ++) { Hệ thống. ngoài. in (myArray [i]); } Hệ thống. ngoài. println (); cho (Chuỗi chuỗi: myArray) {Hệ thống. ngoài. print (string);}}} Hình này cho thấy đầu ra của một đoạn mã trong danh sách. Cả hai vòng lặp thông thường và vòng lặp tăng cường cho hiển thị cùng một đầu ra.
Số 4
không cho biết rằng" bạn có thể gán một giá trị cho myArray [4]. "Trong thực tế, nếu bạn thêm một tuyên bố như myArray [4] =" Rất tiếc! "Vào mã trong danh sách, bạn nhận được một thông báo lỗi khó chịu (ArrayIndexOutOfBoundsException) khi bạn chạy chương trình. Câu lệnh String [] myArray = new String [4] tạo ra một mảng trống và biến myArray tham khảo mảng trống đó. Các mảng có thể có tiềm năng lưu trữ nhiều như bốn giá trị. Nhưng, ban đầu, biến đó đề cập đến một mảng không chứa giá trị. Nó không phải cho đến khi Java thực hiện câu lệnh gán đầu tiên (myArray [0] = "Hello") mà mảng đó chứa bất kỳ giá trị nào.
Bạn có thể dễ dàng tìm ra giá trị 100 được lưu trữ trong mảng hoặc giá trị 1, 000, 000 được lưu trữ trong một mảng. Không tệ đối với công việc của một ngày. Vì vậy, nhược điểm của việc sử dụng một mảng là gì? Bất lợi lớn nhất của một mảng là mỗi mảng có một giới hạn cố định về số lượng các giá trị nó có thể giữ. Khi bạn tạo mảng trong danh sách, Java sẽ giữ khoảng trống cho bốn giá trị String.
Nếu sau đó trong chương trình, bạn quyết định rằng bạn muốn lưu trữ một phần tử thứ năm trong mảng, bạn cần một số mã không hiệu quả, không hiệu quả để làm cho mình một mảng lớn hơn. Bạn cũng có thể đánh giá quá cao kích thước bạn cần cho một mảng, như trong ví dụ này:
Chuỗi [] myArray = new String [20000000];
Khi bạn đánh giá quá cao, bạn có thể lãng phí rất nhiều không gian bộ nhớ.
Một tính năng khó chịu của một mảng là khó khăn bạn có thể có trong chèn các giá trị mới. Hãy tưởng tượng có một hộp gỗ trong mỗi năm trong bộ sưu tập của bạn
Hoàng đế Constantine Comics . Loạt phim bắt đầu từ năm 307 A. D., khi Constantine trở thành người đứng đầu đế chế La Mã. Bạn chỉ có 1, 700 hộp vì bạn thiếu khoảng sáu năm (chủ yếu từ năm 1150 đến năm 1155). Các hộp không được đánh số, nhưng chúng được xếp chồng lên nhau một cạnh nhau trong một hàng dài 200 mét.
Tại một garage bán tại Istanbul, bạn tìm thấy một ấn bản hiếm
Hoàng đế Constantine Comics từ tháng 3 năm 1152. Sau khi vui mừng về truyện tranh đầu tiên từ năm 1152, bạn nhận ra rằng bạn phải chèn một hộp mới vào đống giữa năm 1151 và 1153, trong đó bao gồm di chuyển hộp năm 2013 khoảng mười cm bên trái, và sau đó di chuyển hộp 2012 thay cho hộp 2013, và sau đó di chuyển hộp năm 2011 thay cho hộp 2012. Và như vậy. Cuộc sống của nhà sưu tập Constantine Comics Emperor
đang trở nên mệt mỏi! Chèn một giá trị vào giữa một mảng lớn cũng gây phiền nhiễu.