我有一张地图,其定义如下
HashMap<Object, Object> hashMap;
现在我需要遍历每一对并打印键和值。对于像. key.toString()
_ 但是在数组上不会给出可读的字符串。value.toString()
ArrayList
toString()
我知道Arrays.toString()
. 但我不能在我的情况下使用它,因为Arrays.toString()
需要一个对象数组,而我所拥有的只是一个对象。所以我写了一个自定义代码,看起来像,
private String convertToHumanReadableFormat(Object value) {
if (value == null) return "N/A";
if (value.getClass().isArray()) {
return convertArrayToReadableFormat(value);
}
return value.toString();
}
private String convertArrayToReadableFormat(Object value) {
String output = "[";
int arrayLength = Array.getLength(value);
for (int i = 0; i < arrayLength; i++) {
Object element = Array.get(value, i);
if (element != null) {
if (element.getClass().isArray()) {
output += convertArrayToReadableFormat(element);
}
else {
output += element.toString();
}
}
if ((i + 1) < arrayLength)
output += ", ";
}
output += "]";
return output;
}
我实际上是在复制什么Arrays.deepToString()
。但我看不到只使用Arrays.toString()
or的方法Arrays.deepToString()
。
这是解决问题的正确方法还是有什么方法可以让这些标准方法为我工作?
任何帮助都会很棒。