Tôi có Hashmap có thể chứa ký tự đại diện (*) trong chuỗi.Trả về danh sách các đối sánh ký tự đại diện từ HashMap trong java
Ví dụ,
HashMap<String, Student> students_;
thể có John * như một chìa khóa. Tôi muốn biết liệu JohnSmith có phù hợp với bất kỳ yếu tố nào trong học sinh không. Có thể có nhiều kết quả phù hợp cho chuỗi của tôi (John *, Jo * Smith, v.v.). Có cách nào tôi có thể nhận được một danh sách các trận đấu từ HashMap của tôi?
Có đối tượng nào khác mà tôi có thể sử dụng không yêu cầu tôi lặp qua mọi phần tử trong bộ sưu tập của mình hay tôi phải hút nó lên và sử dụng đối tượng Danh sách?
FYI, bộ sưu tập của tôi sẽ có ít hơn 200 phần tử trong đó và cuối cùng tôi sẽ muốn tìm cặp phù hợp với số lượng ký tự đại diện ít nhất.
chức năng Băm nói chung được xây dựng trong một cách mà những thay đổi nhỏ (ví dụ: 'John SmitH' cho' John Smith') tạo ra các băm hoàn toàn khác nhau. – NullUserException
Tại sao bạn không muốn lặp lại? Nó không phải là xấu (đặc biệt là với ít hơn 200 yếu tố), và cuối cùng bất kỳ giải pháp khác sẽ có khả năng liên quan đến một cái gì đó tương tự về hiệu suất. – Guillaume
Tại ít hơn 200 phần tử, chỉ cần thực hiện tìm kiếm tuyến tính trên 'entrySet()' và đánh giá ký tự đại diện của bạn dựa trên mỗi khóa.Nếu nó đã được nhiều hơn nữa, tôi đã đề nghị một cơ sở dữ liệu (nhúng) và một truy vấn 'LIKE'. –