9

マップの内容を (きれいに) 印刷できるようにしたいと考えています。

単一行ではなく、改行とインデントが必要です。collections/iterables/etc の toString メソッドを無視します。ネストされたコレクションに再帰します。

これは、マップに関して私にとって特に興味深いものです。JSON 化は関連性があると思いますが、そこまで行きたくありません。または、少なくとも、JSON をきれいに印刷するためだけに、コードで JSON について知る必要はありません。私のオプションは何ですか(これを自分で書く以外に)?

4

4 に答える 4

15

ネストされたマップを印刷するために、apache commons コレクションのメソッドMapUtils.debugPrintを使用できます。

このメソッドは、マップを説明する適切にフォーマットされた文字列を出力します。各マップ エントリには、キー、値、および値のクラス名が出力されます。値が Map の場合、再帰的な動作が発生します。

于 2013-03-03T23:22:07.843 に答える
4

このように、各エントリの先頭を新しい行とタブに置き換えてみてください

myMap.toString().replace("[", "\n\t[");

于 2013-03-02T06:56:08.803 に答える
1

私は 100% 確実ではありませんが、これはあなたが探しているものであり、あなたがきれいな印刷と呼んでいるものかもしれません-

Map<Integer,String> map = new HashMap<Integer,String>();
...
for(Map.Entry<Integer,String> entry: map.entrySet()){
    System.out.println(entry.getKey()+" - "+ entry.getValue());
}
于 2013-03-02T06:55:35.637 に答える