2011-09-12 21 views
5

मैंने एक साधारण फ़ंक्शन को कोड किया है जो इसे मेरे लिए प्रिंट करता है लेकिन मैं सोच रहा था कि कोई आसान तरीका है या नहीं।जावा में <स्ट्रिंग, स्ट्रिंग []> का स्ट्रिंग प्रस्तुति प्राप्त करने का आसान तरीका जावा में?

मैं मूल रूप से कुछ है कि, कुंजी (String रों) और मूल्यों (String सरणियों) प्रिंट होगा जैसे मैं मूल्यों पर Arrays.toString() लागू की तलाश में हूँ।

उत्तर

0

मुझे नहीं लगता कि यह आपके स्वयं के फ़ंक्शन को कोड किए बिना संभव है, क्योंकि मानचित्र हमेशा अपने मूल्यों को अपने स्वयं के स्ट्रिंग() विधियों का उपयोग करके प्रिंट करेगा, और एक सरणी के लिए, दुर्भाग्य से Arrays.toString() उत्पन्न करता है ।

आप अपने मानचित्र उदाहरण में Map.toString() को ओवरराइड कर सकते हैं, AbstractMap.toString() से कोड कॉपी करके, और फिर मान एक सरणी है तो विशेष हैंडलिंग जोड़ना।

3

इस साइट दो दिलचस्प तरीकों: http://www.vineetmanohar.com/2010/05/2-ways-to-convert-java-map-to-string/

पहले एक (कुछ कोड) आप प्रारूप कुंजी = मान @ कुंजी 2 = मान 2 & में एक जवाब दे देंगे ...

दूसरा एक होगा आपको सूचना के साथ एक एक्सएमएल

1

एक पुराना सवाल है, लेकिन शायद Google Guava की तरह कोर libs का उपयोग करने वाले किसी व्यक्ति के लिए उपयोगी हो सकता है।

private static <K, V> Map<K, List<V>> asView(Map<K, V[]> map) { 
    // returns a view of the given map so it's considered cheap during construction 
    // may be expensive on multiple re-iterations 
    return transformEntries(map, new EntryTransformer<K, V[], List<V>>() { 
     @Override 
     public List<V> transformEntry(K key, V[] value) { 
      return asList(value); 
     } 
    }); 
    // java 8: return transformEntries(map, (k, v) -> asList(v)); 
} 

... 

final Map<String, String[]> map = ImmutableMap.of(
     "one", new String[] {"a", "b", "c"}, 
     "two", new String[] {"d", "e", "f"}, 
     "three",new String[] {"g", "h", "i"} 
); 
final Map<String, List<String>> view = asView(map); 
System.out.println(map); 
System.out.println(view); 

नमूना उत्पादन:

{one=[Ljava.lang.String;@4a4e79f1, two=[Ljava.lang.String;@6627e353, three=[Ljava.lang.String;@44bd928a} 
{one=[a, b, c], two=[d, e, f], three=[g, h, i]} 

ध्यान दें कि उत्पादन JDK-परिभाषित किया गया है डिफ़ॉल्ट रूप से स्वरूपित उत्पादन।

संबंधित मुद्दे