java中如何重写创建了一个A类A类中调用了集合HashMapArrayList等集合如何在A类中重写这些集合的toString方法
重写HashMap、ArrayList等集合的toString方法可以在A类中创建一个继承HashMap、ArrayList的新类,然后重写该类的toString方法。接着,在A类中声明HashMap、ArrayList等集合时,使用新创建的继承类作为类型即可。
以下是一个示例代码:
public class A {
private MyHashMap<String, Integer> hashMap;
private MyArrayList<String> arrayList;
public A() {
hashMap = new MyHashMap<>();
hashMap.put("key1", 1);
hashMap.put("key2", 2);
arrayList = new MyArrayList<>();
arrayList.add("value1");
arrayList.add("value2");
}
@Override
public String toString() {
return "A{" +
"hashMap=" + hashMap +
", arrayList=" + arrayList +
'}';
}
private class MyHashMap<K, V> extends HashMap<K, V> {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
for (Map.Entry<K, V> entry : entrySet()) {
sb.append(entry.getKey()).append("=").append(entry.getValue()).append(", ");
}
if (!isEmpty()) {
sb.delete(sb.length() - 2, sb.length());
}
sb.append("}");
return sb.toString();
}
}
private class MyArrayList<E> extends ArrayList<E> {
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (E element : this) {
sb.append(element).append(", ");
}
if (!isEmpty()) {
sb.delete(sb.length() - 2, sb.length());
}
sb.append("]");
return sb.toString();
}
}
}
在该示例代码中,A类中声明了两个集合:hashMap和arrayList。这两个集合分别使用了MyHashMap和MyArrayList作为类型,这两个类都是继承自HashMap和ArrayList的。MyHashMap和MyArrayList都重写了toString方法,在toString方法中按照指定格式输出集合中的元素。最后,在A类的toString方法中,使用了新的toString方法输出hashMap和arrayList的内容
原文地址: http://www.cveoy.top/t/topic/e13N 著作权归作者所有。请勿转载和采集!