Bài đăng này chỉ thảo luận về scala.collection.mutable.LinkedList
. Các triển khai khác không phải là chủ đề của chủ đề này.Trường hợp sử dụng cho LinkedList
Câu hỏi của tôi là: trường hợp sử dụng của lớp học này là gì? Tôi thấy nó có các vấn đề của cả hai loại cấu trúc có thể thay đổi và bất biến trong khi mang lại lợi ích cho không. Tôi nói như vậy vì:
- API vẻ với tôi như thể nó là một API bất biến (
filter
,map
,drop
,take
vv tất cả trở lại một mớiLinkedList
thay vì làm thay đổi tại chỗ) - tất cả các lợi ích của danh sách liên kết không thay đổi, ít nhất tôi đoán, không có mặt, tức là chia sẻ tối đa giữa các cấu trúc, bởi vì đó là vẫn có thể thay đổi (thông qua
var elem
vàvar next
.
vì vậy, về cơ bản chúng ta có một thời gian truy cập tuyến tính, ap tuyến tính pend thời gian, không gian tuyến tính vv và không có gì để hiển thị cho nó trong không gian phức tạp hoặc trong khả năng lý do về mã (ngoại trừ có thể là O (1) prepend nhưng nó vẫn là trường hợp với danh sách bất biến).
Tôi không thấy lợi ích quan trọng của loại cấu trúc này? Tôi đang tìm kiếm các biện pháp khách quan và/hoặc trường hợp sử dụng có thể áp dụng cho lớp học này.
Trông giống như một bao bọc mỏng xung quanh lớp không thay đổi. Lợi ích: ai đã viết nó đã có thể làm điều đó rất nhanh chóng, mà không lo lắng về việc giới thiệu lỗi? – bdares
@bdares điều gì khiến bạn nghĩ vậy? Tôi đã có một cái nhìn nhanh về nguồn và nó dường như không có thứ gì như vậy. –
hmmm ... giống như bất kỳ loại có thể thay đổi nào, nó có thể được tham chiếu từ một vài con trỏ và sau khi được chỉnh sửa, những thay đổi sẽ được nhìn thấy từ tất cả các con trỏ. Điều này không liên quan gì đến thời gian phức tạp. – Oren