Tôi đang làm việc với một bộ lớn (5-20 triệu) của các khóa chuỗi (chiều dài trung bình 10 ký tự) cần lưu trữ trong một trong cấu trúc dữ liệu bộ nhớ hỗ trợ các hoạt động sau đây trong thời gian liên tục hoặc gần thời gian liên tục:Cần bộ nhớ hiệu quả để lưu trữ tấn chuỗi (là: Thực hiện HAT-Trie trong java)
// Returns true if the input is present in the container, false otherwise
public boolean contains(String input)
HashMap Java đang chứng tỏ là hơn thỏa đáng như xa như thông là có liên quan nhưng chiếm nhiều bộ nhớ. Tôi đang tìm một giải pháp đó là bộ nhớ hiệu quả và vẫn hỗ trợ một thông lượng đó là phong nha (so sánh với hoặc gần như tốt như băm).
Tôi không quan tâm đến thời gian chèn/xóa. Trong ứng dụng của tôi, tôi sẽ chỉ thực hiện chèn (chỉ vào thời điểm khởi động) và sau đó sẽ chỉ truy vấn cấu trúc dữ liệu bằng cách sử dụng phương thức contains
cho tuổi thọ của ứng dụng.
Tôi đọc cấu trúc dữ liệu HAT-Trie gần nhất với nhu cầu của tôi. Tôi tự hỏi nếu có một thư viện có một thực hiện.
Các đề xuất khác với con trỏ để triển khai được chào đón.
Cảm ơn bạn.
Tôi đoán mọi cơ sở hạ tầng khác sẽ sử dụng nhiều bộ nhớ, nếu được triển khai trong Java. – ebo
@ebo Không nếu triển khai bên dưới sử dụng các ký tự chars/char. Không cần phải tồn tại đối tượng String đầu vào. Nhiệm vụ nói chung nên sử dụng bộ nhớ ít hơn. – hashable
Câu hỏi rất thú vị. –