Tôi cần một bộ sưu tập hoạt động giống như C++ multimap, nhưng tôi cũng cần có khả năng nhận các phần tử bằng một loạt các khóa.Có một bộ sưu tập java được sắp xếp xử lý các bản sao không?
Trả lời
Không có bộ sưu tập multimap cài sẵn trong Java. Để giải quyết điều này, bạn có thể ánh xạ tới mỗi khóa một danh sách các giá trị: ví dụ: Map<String, List<String>>
. Nếu không, có các thư viện của bên thứ ba có nhiều ảnh được triển khai - here là một trong số các thư viện đó.
Bạn có thể xem xét Google Collections. Nó có nhiều triển khai cho MultiMap
.
Có một hack đơn giản xung quanh việc tạo nhiều bộ sưu tập có thể sắp xếp trong java ... Sử dụng tập dữ liệu TreeMap và để nhập khóa * 10^4 + bộ đếm. Bằng cách này, bạn đang lưu trữ các giá trị khóa trùng lặp trong bản đồ (bằng cách thêm bộ đếm chúng thực sự không trùng lặp, vì vậy bạn có thể lưu trữ trong TreeMap, nhưng bạn không biết sử dụng bốn số cuối của các giá trị số nguyên), tuy nhiên tập dữ liệu của bạn là đang được sắp xếp bằng cách sử dụng các giá trị khóa ban đầu của bạn. Lưu ý rằng tùy thuộc vào độ lớn của tập dữ liệu, bạn có thể muốn điều chỉnh 10^n để đảm bảo rằng số liệu lớn hơn số lượng mục nhập trong dữ liệu của bạn.
- 1. Sắp xếp một bộ sưu tập của các đối tượng
- 2. Sắp xếp lại bộ sưu tập C#
- 3. Tại sao các bộ sưu tập không được xử lý thống nhất trong Python?
- 4. Sắp xếp bộ sưu tập dựa trên một bộ sưu tập khác
- 5. Sắp xếp một ArrayList của người có bộ sưu tập java
- 6. Sắp xếp một đối tượng bộ sưu tập Java dựa trên một lĩnh vực trong đó
- 7. Có tên cho bộ sưu tập cấu trúc dữ liệu mảng được sắp xếp này không?
- 8. Cách sắp xếp bộ sưu tập trong Magento?
- 9. Sắp xếp bộ sưu tập trong bộ sưu tập bằng cách sử dụng LINQ
- 10. Cách sắp xếp Bộ sưu tập <T>?
- 11. Magento: Sắp xếp bộ sưu tập sản phẩm
- 12. Bộ sưu tập java có cặp khóa/giá trị và được sắp xếp theo thứ tự chèn
- 13. Bộ sưu tập Java không có Bản đồ như một phần của khung tuyển tập
- 14. Tìm bản sao trong bộ sưu tập
- 15. Cách hiệu quả để sắp xếp lại bộ sưu tập dựa trên bản đồ C++
- 16. Thành ngữ cho phép lặp lại theo cặp thông qua bộ sưu tập được sắp xếp
- 17. Hibernate chèn các bản sao vào bộ sưu tập @OneToMany
- 18. Bộ sưu tập ngoại lệ NHibernate [..User.Groups] không được xử lý bởi flush()
- 19. bộ sưu tập java so với bản đồ trong khung bộ sưu tập
- 20. cách xử lý “sendDidFinish” trong bộ sưu tập
- 21. Sắp xếp một bộ sưu tập lớn trong khi hiển thị tiến trình
- 22. Lớp xếp hàng trong Bộ sưu tập Java ở đâu?
- 23. Danh sách sắp xếp jQuery được liên kết và bộ sưu tập Backbone
- 24. Java: sao chép Bộ sưu tập tùy ý thông qua tham chiếu đến Bộ sưu tập
- 25. Sử dụng tuần tự hóa XML để sắp xếp một bộ sưu tập không có nút cha
- 26. Hibernate/GORM: bộ sưu tập không được xử lý bởi flush()
- 27. Bộ sưu tập Java với các đối tượng có thể thay đổi
- 28. lọc và sắp xếp danh sách sử dụng các bộ sưu tập google
- 29. Có bộ sưu tập không bị chặn trong Java không?
- 30. Cách tốt nhất để sắp xếp bộ sưu tập trong một CompositeView
Đặc biệt. lớp TreeMultimap của Google Collections bao gồm một phương thức asMap() trả về một SortedMap. Sau đó, bạn có thể gọi các phương thức như SortedMap.subMap() để truy xuất ánh xạ cho một loạt các khóa. –
Bộ sưu tập của Google hiện là [Guava] (http://code.google.com/p/guava-libraries/) – Muhd