में हैश मैप से वाइल्डकार्ड मैचों की एक सूची लौटने पर मेरे पास हैशमैप है जिसमें स्ट्रिंग में वाइल्डकार्ड (*) हो सकता है।जावा
उदाहरण के लिए,
HashMap<String, Student> students_;
एक प्रमुख के रूप में जॉन * हो सकता है। मैं जानना चाहता हूं कि क्या जॉनस्मिथ छात्रों_ में किसी भी तत्व से मेल खाता है। मेरी स्ट्रिंग के लिए कई मैचों (जॉन *, जो * स्मिथ, आदि) हो सकते हैं। क्या मेरे पास हैश मैप से इन मैचों की सूची प्राप्त करने का कोई तरीका है?
क्या कोई अन्य वस्तु है जिसका उपयोग मैं कर सकता हूं जिसके लिए मुझे अपने संग्रह में हर तत्व के माध्यम से पुनरावृत्ति करने की आवश्यकता नहीं है, या क्या मुझे इसे चूसना है और सूची वस्तु का उपयोग करना है?
एफवाईआई, मेरे संग्रह में 200 से कम तत्व होंगे, और आखिरकार मैं जोड़ी जो कम से कम वाइल्डकार्ड से मेल खाती है उसे ढूंढना चाहूंगा।
हैशिंग कार्यों एक तरह से निर्माण कर रहे हैं कि मामूली परिवर्तन (जैसे: 'जॉन SmitH' को' जॉन स्मिथ ') पूरी तरह से अलग हैश पैदा करते हैं। – NullUserException
आप फिर से क्यों नहीं करना चाहते हैं? यह बुरा नहीं है (विशेष रूप से 200 से कम तत्वों के साथ), और आखिरकार किसी भी अन्य समाधान में प्रदर्शन के मामले में कुछ समान शामिल होगा। – Guillaume
200 से कम तत्वों पर, केवल 'एंट्रीसेट() 'पर रैखिक खोज करें और प्रत्येक कुंजी के विरुद्ध अपने वाइल्डकार्ड का मूल्यांकन करें।यदि यह बहुत अधिक होता, तो मैंने एक (एम्बेडेड) डेटाबेस और 'LIKE' क्वेरी का सुझाव दिया था। –