Trong Java, tôi đang tìm cách ánh xạ nhiều khóa tới cùng một giá trị. Hãy nói rằng tôi có những con số 0-9 như phím, và "x", "y" và "z" như các giá trị như sau:Cơ sở hạ tầng Java để ánh xạ nhiều khóa tới cùng một giá trị
0->y
1->y
2->y
3->x
4->x
5->y
6->z
7->y
8->z
9->z
tại x, y và z là chuỗi rất dài, và tôi có hàng triệu khóa để tôi không thể đủ khả năng để lưu trữ các chuỗi nhiều lần. Làm thế nào bạn sẽ đi về nó?
Một ý tưởng tôi có là tạo hai mảng: một giây nhân tạo đến khóa được tạo ra để các khóa gốc được ánh xạ và trong đó một mảng khác là khóa cho các giá trị thực. Bằng cách đó, các giá trị chỉ được lưu trữ một lần và các khóa ban đầu vẫn có thể được ánh xạ gián tiếp tới các giá trị:
0->k1
1->k1
2->k1
3->k2
4->k2
5->k1
6->k3
7->k1
8->k3
9->k3
k1->y
k2->x
k3->z
Câu hỏi: Có cấu trúc dữ liệu tốt hơn không?
Điều đó có ý nghĩa. Cảm ơn bạn. – eikes
+1 cho 'intern()' –
Pete, đủ công bằng. Tôi không thực sự có thời gian để viết một bài báo trên nó vì vậy tôi vừa xóa bình luận. –