Điều này rất giống với một câu hỏi khác (Functional Data Structures in Java) nhưng các câu trả lời không đặc biệt hữu ích.java: các thư viện cho các cấu trúc dữ liệu kiểu chức năng bất biến
Tôi cần phải sử dụng các phiên bản bất biến của bộ sưu tập Java tiêu chuẩn (ví dụ: HashMap/TreeMap/ArrayList/LinkedList/HashSet/TreeSet). Bởi "không thay đổi" tôi ngụ ý bất biến theo ý nghĩa chức năng (ví dụ: purely functional data structures), trong đó việc cập nhật hoạt động trên cấu trúc dữ liệu không làm thay đổi dữ liệu gốc, mà thay vào đó trả về một thể hiện mới của cùng một loại cấu trúc dữ liệu. Thông thường, các trường hợp mới và cũ của cấu trúc dữ liệu sẽ chia sẻ dữ liệu không thay đổi để có hiệu quả về thời gian và không gian.
Từ những gì tôi có thể nói lựa chọn của tôi bao gồm:
nhưng tôi không chắc chắn cho dù bất kỳ trong số này là đặc biệt hấp dẫn đối với tôi. Tôi có một vài yêu cầu/desirements:
các bộ sưu tập trong câu hỏi nên được sử dụng trực tiếp trong Java (với các thư viện thích hợp trong classpath). FJ sẽ làm việc cho tôi; Tôi không chắc liệu tôi có thể sử dụng cấu trúc dữ liệu của Scala hoặc Clojure trong Java không bằng cách sử dụng trình biên dịch/thông dịch viên từ những ngôn ngữ đó và không phải viết mã Scala hoặc Clojure.
hoạt động cốt lõi trên danh sách/bản đồ/bộ nên có thể w/o phải tạo chức năng các đối tượng với cú pháp khó hiểu (FJ trông hơi iffy)
Họ nên hiệu quả trong thời gian và không gian. Tôi đang tìm một thư viện lý tưởng đã thực hiện một số thử nghiệm hiệu suất. FJ của TreeMap được dựa trên một cây đỏ-đen, không chắc chắn như thế nào tỷ giá.
Tài liệu/hướng dẫn phải đủ tốt để người khác có thể bắt đầu nhanh chóng bằng cấu trúc dữ liệu. FJ thất bại trên mặt trận đó.
Mọi đề xuất?
Ngoài ra còn có https://github.com/blackdrag/pcollections –