Java: Queue

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Trong lớp Stack, ngăn xếp các đối tượng dẫn đến hành vi nhập sau xuất trước (Last In First Out - LIFO). Nó mở rộng từ lớp Vector coi một vectơ như một ngăn xếp.

Lớp Stack định nghĩa phương thức khởi tạo mặc định tạo ra một ngăn xếp trống. Nó bao gồm tất cả các phương thức của lớp Vector. Interface này bao gồm năm phương thức sau:

empty() : Kiểm tra xem ngăn xếp có trống không và trả về giá trị boolean là true và false.

peek(): Chế độ này xem đối tượng ở trên cùng của ngăn xếp mà không cần xóa nó khỏi ngăn xếp.

pop(): Thao tác này xóa đối tượng ở đầu ngăn xếp này và trả về đối tượng đó dưới dạng giá trị của hàm.

push(E item): Điều này đẩy một item lên trên cùng của ngăn xếp.

int search(Object o): Trả về vị trí dựa trên 1 nơi một đối tượng nằm trên ngăn xếp.

Lưu ý - Khi một ngăn xếp được tạo, nó không chứa mục nào.

Interface Queue

Hàng đợi là một tập hợp chứa các phần tử cần được xử lý. Trong Queue, các phần tử thường được sắp xếp theo thứ tự Nhập trước - Xuất trước (FIFO). Hàng đợi ưu tiên sắp xếp thứ tự phần tử theo giá trị của chúng. Một hàng đợi cũng có thể được sắp xếp theo các thứ tự khác. Mọi triển khai Queue đều xác định thứ tự các thuộc tính. Trong hàng đợi FIFO, các phần tử mới được chèn vào cuối hàng đợi. Hàng đợi hoặc ngăn xếp LIFO sắp xếp thứ tự các phần tử trong mẫu LIFO. Tuy nhiên, trong bất kỳ hình thức sắp xếp nào, một lệnh gọi đến phương thức thăm dò ý kiến ​​() sẽ loại bỏ phần đầu của hàng đợi.

Hàng đợi hỗ trợ các phương thức collection tiêu chuẩn và cũng cung cấp các phương thức bổ sung để thêm, xóa và xem xét các phần tử của hàng đợi. Hàng đợi giúp theo dõi các yêu cầu thông báo không đồng bộ trong khi ngăn xếp giúp duyệt qua cấu trúc cây thư mục.

Interface Deque

Hàng đợi kết thúc kép thường được gọi là deque. Nó là một tập hợp tuyến tính hỗ trợ chèn và loại bỏ các phần tử từ cả hai đầu.

Lưu ý - Deque được phát âm là deck.

Thông thường, các triển khai Deque không có hạn chế về số lượng phần tử để đưa vào. Tuy nhiên, nó hỗ trợ các deques bị giới hạn dung lượng.

Các phương thức được kế thừa từ interface Queue. Một deque khi được sử dụng làm hàng đợi dẫn đến hành vi FIFO. Các phần tử được thêm vào cuối deque và bị xóa khỏi đầu.

Một deque khi được sử dụng làm ngăn xếp LIFO nên được ưu tiên sử dụng với lớp Stack kế thừa. Một deque khi được sử dụng như một ngăn xếp có các phần tử của chúng được đẩy và xuất hiện từ đầu deque. Phương thức ngăn xếp tương đương với phương thức Deque.

Deque và các triển khai của nó khi được sử dụng với lớp Stack cung cấp một tập hợp các hoạt động ngăn xếp LIFO nhất quán. Ví dụ sau thể hiện điều này.

Deque<Integer> stack = new ArrayDeque<Integer>();

Các phương thức được hỗ trợ bởi lớp Queue

Một số phương thức quan trọng được hỗ trợ bởi lớp này như sau:

poll()

Phương thức trả về giá trị của phần đầu của hàng đợi và loại bỏ phần đầu khỏi hàng đợi. Phương thức trả về null nếu hàng đợi trống.

Cú pháp:

 E poll()

peek ()

Phương thức trả về giá trị của phần đầu của hàng đợi nhưng không loại bỏ phần đầu khỏi hàng đợi. Phương thức trả về null nếu hàng đợi trống.

Cú pháp:

E peek()

remove()

Phương thức trả về giá trị của phần đầu của hàng đợi và loại bỏ phần đầu khỏi hàng đợi. Nó ném ra một ngoại lệ nếu hàng đợi trống.

Cú pháp:

E remove()

offer(E obj)

Phương thức này sẽ chèn phần tử đã chỉ định vào hàng đợi và trả về true nếu có thể thêm phần tử khác thì nó trả về false.

Cú pháp:

public boolean offer(E obj)

elment()

Phương thức trả về giá trị của phần đầu của hàng đợi nhưng không loại bỏ phần đầu khỏi hàng đợi. Phương thức ném một ngoại lệ nếu hàng đợi trống.

Cú pháp:

E element()

Mỗi phương thức được mô tả có thể đưa ra một ngoại lệ nếu hoạt động không thành công hoặc trả về giá trị null hoặc false giá trị.

» Tiếp: PriorityQueue
« Trước: LinkedHashMap
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!