जावा में स्ट्रिंग का नक्शा


89

जब मैं System.out.println(map)जावा में करता हूं, तो मुझे stdout में एक अच्छा आउटपुट मिलता है। मैं Mapमानक आउटपुट के साथ बिना किसी चर में एक समान स्ट्रिंग का यह प्रतिनिधित्व कैसे प्राप्त कर सकता हूं ? कुछ पसंद है String mapAsString = Collections.toString(map)?

जवाबों:


143

का उपयोग करें Object#toString()

String string = map.toString();

कि आखिर हुडों के नीचे क्या System.out.println(object)होता है । नक्शे के लिए प्रारूप में वर्णित है ।AbstractMap#toString()

इस नक्शे का एक स्ट्रिंग प्रतिनिधित्व लौटाता है। स्ट्रिंग के प्रतिनिधित्व में कुंजी-मूल्य मैपिंग की एक सूची होती है, जो नक्शे के entrySetदृश्य के आइटर द्वारा लौटाए गए क्रम में, ब्रेसिज़ में संलग्न होती है ("{}")। आसन्न मैपिंग वर्ण "," (अल्पविराम और स्थान) द्वारा अलग किए जाते हैं। प्रत्येक कुंजी-मान मैपिंग को संबंधित मान के बाद बराबर चिह्न ("=") द्वारा पीछा किया जाता है। कुंजी और मान तार के रूप में परिवर्तित होते हैं String.valueOf(Object)


3
मानचित्र पर F3 दबाकर स्ट्रैसिंग () विधि भ्रामक है! आपको सीधे Object.toString पर ले जाता है () - F3 को उलझाने से पहले सोचना चाहिए
एडम

2
@ अदम, ऐसा इसलिए है क्योंकि आप इंटरफ़ेस पर toString () कहते हैं, जहां यह विधि, निश्चित रूप से परिभाषित नहीं है। आपका आईडीई वास्तविक रन-टाइम कार्यान्वयन के बारे में नहीं जानता है। आपको उसे दोष नहीं देना चाहिए।
विक्टर डोंब्रोवस्की

@VictorDombrovsky किसी भी आधे सभ्य आईडीई (जैसे IntelliJ, ग्रहण, आदि) को एक इंटरफ़ेस में परिभाषित विधि के वास्तविक कार्यान्वयन को ट्रैक करने में सक्षम होना चाहिए।
व्हीलर

@wheeler toString()में घोषित नहीं किया गया है Mapऔर यदि यह था: Map21 कार्यान्वयन कक्षाएं हैं। जब कार्यान्वयन वास्तव में उपयोग किया जाता है, तो उनमें से किसे दूसरों पर प्राथमिकता दी जानी चाहिए?
गेरोल्ड ब्रॉसर

लेकिन प्रमुख मान हालांकि दोहरे नहीं हैं, इसलिए कोई वैध JSON नहीं है, अगर कोई इसे JSON
P Satish Patro

11

यदि आप प्रिंट फॉर्मेट को कस्टमाइज़ करना चाहते हैं तो आप गूगल-कलेक्शन (अमरूद) जॉइनर क्लास का भी उपयोग कर सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.