나는 나를 위해 그것을 인쇄하는 간단한 함수를 코딩했지만 더 쉬운 방법이 있는지 궁금해하고있었습니다.Java에서 Map <String, String []>의 문자열 표현을 가져 오는 쉬운 방법은 무엇입니까?
기본적으로 값에 Arrays.toString()
을 호출 한 것처럼 키 (String
) 및 값 (String
배열)을 인쇄 할 무언가를 찾고 있습니다.
나는 나를 위해 그것을 인쇄하는 간단한 함수를 코딩했지만 더 쉬운 방법이 있는지 궁금해하고있었습니다.Java에서 Map <String, String []>의 문자열 표현을 가져 오는 쉬운 방법은 무엇입니까?
기본적으로 값에 Arrays.toString()
을 호출 한 것처럼 키 (String
) 및 값 (String
배열)을 인쇄 할 무언가를 찾고 있습니다.
지도가 항상 자신의 toString() 메서드를 사용하여 값을 인쇄하기 때문에 자신의 함수를 코딩하지 않고도 가능하지 않다고 생각합니다. 배열에 대해서는 Arrays.toString()이 생성하는 것과는 다릅니다. .
Map 인스턴스의 Map.toString()을 재정의하려면 AbstractMap.toString()에서 코드를 복사 한 다음 값이 배열 인 경우 특수 처리를 추가하십시오.
이 사이트에 두 가지 흥미로운 방법이 있습니다 http://www.vineetmanohar.com/2010/05/2-ways-to-convert-java-map-to-string/
첫 번째 (일부 코드) 당신에게 형식 키 = 값 @의 키 2 = 값 2 &에 답을 줄 것이다 ...
두 번째 것 정보가 포함 된 XML을 제공하십시오.
이전 질문이지만 Google 구아바와 같은 핵심 라이브러리 만 사용하는 사용자에게 유용 할 수 있습니다.
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);
샘플 출력 : 출력이 기본 형식의 출력을 JDK 정의되어
{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]}
참고.