मेरे पास जावा में हैशटेबल है और तालिका में सभी मानों को फिर से चालू करना चाहते हैं और पुनरावृत्ति करते समय एक विशेष कुंजी-मूल्य जोड़ी को हटाना चाहते हैं।जावा में हैशटेबल से हटना और हटाना
यह कैसे किया जा सकता है?
मेरे पास जावा में हैशटेबल है और तालिका में सभी मानों को फिर से चालू करना चाहते हैं और पुनरावृत्ति करते समय एक विशेष कुंजी-मूल्य जोड़ी को हटाना चाहते हैं।जावा में हैशटेबल से हटना और हटाना
यह कैसे किया जा सकता है?
आप Map
की प्रविष्टि नहीं बल्कि Integer
के Map
, String
जोड़े से अधिक जावा 6. निम्न उदाहरण दोहराता में बढ़ाया के लिए लूप वाक्य रचना उपलब्ध का उपयोग करने में सक्षम होने से सेट से अधिक पुनरावृति का सुस्पष्ट java.util.Iterator
उपयोग करने की आवश्यकता
List<String> keyList = new ArrayList<String>;
for(Map.Entry<String,String> entry : hashTable){
if(entry.getValue().equals("delete")) // replace with your own check
keyList.add(entry.getKey());
}
for(String key : keyList){
hashTable.remove(key);
}
आप: किसी भी प्रविष्टि जिसका Integer
कुंजी रिक्त है या बराबर होती है 0.
Map<Integer, String> map = ...
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
// Remove entry if key is null or equals 0.
if (entry.getKey() == null || entry.getKey() == 0) {
it.remove();
}
}
आपके पास 'हैशटेबल' में' शून्य 'कुंजी नहीं हो सकती है। यही कारण है कि यह 'मानचित्र' से अलग है। साथ ही, आप 'getKey' के बजाय उपरोक्त कोड में 'Map.Entry getValue' से पूछताछ कर रहे हैं। आप 'entry.getValue() == 0' नहीं कर सकते क्योंकि मान 'स्ट्रिंग' प्रकार के होते हैं। – polygenelubricants
@ पोलिजेनेलब्रिकेंट्स, मानचित्र एक इंटरफेस है जो शून्य पर कोई प्रतिबंध नहीं बनाता है। हैश मैप एक मानचित्र कार्यान्वयन है जो नल की अनुमति नहीं देता है। –
मैं अपने कोड में हैशटेबल का संदर्भ नहीं देता हूं और वैसे भी इसका उपयोग नहीं करता क्योंकि यह हैश मैप द्वारा अधिग्रहण किया गया है (जो ** ** शून्य कुंजी और मानों को अनुमति देता है)। – Adamski
में हैशटेबल विधियों के बारे में अधिक जानकारी प्राप्त कर सकते हैं तो क्या आप कुंजी, मूल्य जोड़ी जिसे आप पहले से हटाना चाहते हैं उसे जानते हैं? यह ऐसा करने के लिए, तो बस अधिक स्पष्ट है:
table.delete(key);
for (K key: table.keySet()) {
// do whatever you need to do with the rest of the keys
}
मुझे केवल मूल्य पता था इसलिए यह काम नहीं करेगा। धन्यवाद हालांकि देखने के लिए –
आप उपयोग कर सकते हैं Enumeration
:
Hashtable<Integer, String> table = ...
Enumeration<Integer> enumKey = table.keys();
while(enumKey.hasMoreElements()) {
Integer key = enumKey.nextElement();
String val = table.get(key);
if(key==0 && val.equals("0"))
table.remove(key);
}
ही: http://stackoverflow.com/questions/46898/iterate-over -एच-एंट्री-इन-ए-मैप –