cuốn sách gpt4 ai đã làm

hàng đợi java<整数> q = Danh sách liên kết mới<整数>()

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 05:21:30 25 4
mua khóa gpt4 Nike

nó đây rồi câu trả lời cho "Làm cách nào để khởi tạo một đối tượng Hàng đợi trong java?" ,

Hàng đợi là một giao diện. Bạn không thể khởi tạo một giao diện một cách trực tiếp ngoại trừ thông qua một lớp bên trong ẩn danh. không phải những gì bạn muốn làm cho một bộ sưu tập. Thay vào đó, hãy chọn cách triển khai hiện có.

Hàng đợi q = LinkedList mới();

or

Hàng đợi q = new ArrayDeque();

Thông thường, bạn chọn triển khai bộ sưu tập theo đặc điểm hiệu suất và đồng thời mà bạn quan tâm.

Cái này hoạt động thế nào? Giao diện Hàng đợi chịu trách nhiệm triển khai LinkedList có nghĩa là gì?

Điều này có nghĩa là các đối tượng có thể được sắp xếp theo thứ tự FIFO (theo thứ tự xuất trước) và có thể được q Gọi phương thức danh sách liên kết?

câu trả lời hay nhất

Để giải thích bằng một phép ẩn dụ (có lẽ hơi thiếu sót) - hãy nghĩ đến một Danh sách liên kếtnhư một mảnh giấy. coi như Hàng đợi Việc phân bổ bao gồm một phần nhỏ của bài báo, chỉ ra rằng nóHàng đợi .

Nếu bạn gọi Hàng đợiphương pháp, nó vẫn sẽ làm điều gì đó như Danh sách liên kết Điều thường làm là đó là một mảnh giấy.

Vì phần lớn nó đã bị che phủ nên bạn không thể thấy được nó Danh sách liên kết , bạn chỉ có thể thấy rằng đó là một Hàng đợi , vì vậy bạn chỉ có thể gọi Hàng đợi方法。

Toàn bộ tờ giấy vẫn còn - bạn chỉ cần tháo lớp bìa ra, tương đương với việc ném nó trở lại Danh sách liên kết , điều này sẽ cho phép bạn gọi bất kỳ Danh sách liên kếtCách để sử dụng nó một lần nữa.


Bây giờ để biết thêm chi tiết kỹ thuật:

Nhân tiệnDanh sách liên kết Ý tôi là "thường" làm những gì tôi đã đề cập ở trên Danh sách liên kếtluôn là danh sách liên kết, ngay cả khi bạn gán nó cho Hàng đợi - Nó sẽ không đột nhiên bắt đầu sử dụng mảng làm phương pháp triển khai cơ bản, như mảngDeque sẽ (nó cũng trở thành sự thật Hàng đợi ), hoặc cái gì đó khác.

Hàng đợiThực sự không cần phải là FIFO (xem tài liệu )(nếu cần thiết, Danh sách liên kết cũng cần thiết), vì vậy Danh sách liên kếtSẽ có sự tự do đáng kể trong vấn đề này, vì vậy hãy sử dụng Deque Tiếp tục với lời giải thích này. - Có các phương thức hỗ trợ thêm, bớt trước hoặc sau.

因为 Danh sách liên kếtdụng cụ Deque , nó cần phải thực hiện thêm đầu tiênChức năng. Theo tài liệu,thêm đầu tiênCần bổ sung thêm chức năngDequeTrên thực tế, phía trước có Danh sách liên kết , sẽ được thêm vào Danh sách liên kết phía trước (mặc dù Danh sách liên kết không cần phải đặt trước Deque phía trước, bằng cách xem Deque nhận ra ở Danh sách liên kết phương pháp, chúng ta thấy Deque Mặt trước là mặt trướcDanh sách liên kết Tất cả các phương pháp và tất cả các phương pháp thêm/bớt từ một phía đều được thực hiện từ phía đúng).

Bây giờ là một lưu ý quan trọng nhưng hơi khó hiểu - Danh sách liên kếtVí dụ, người ta có thể thực hiện Dequevà có một thêm đầu tiênNó không làm những gì nó phải làm - ví dụ, nó chỉ in một số văn bản ngẫu nhiên. Không có gì trong bản thân ngôn ngữ để ngăn chặn điều này - bởi vì đối với trình biên dịch, việc triển khai DequeChỉ yêu cầu bạn xác định một loạt các phương thức - không có sự thực thi nào về những phương thức đó nên làm gì. Đối với API Java và bất kỳ thư viện tử tế nào có liên quan, có thể giả định rằng mọi lớp triển khai giao diện sẽ tuân thủ những gì giao diện đó khai báo, nhưng hãy nhớ rằng, không có gì ngăn cản nó không tuân thủ khi nói đến các thư viện có vấn đề hơn hoặc những lập trình viên ít kinh nghiệm hơn.

Về java - Queue q = new LinkedList(), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/21727873/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress