重写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的内容

java中如何重写创建了一个A类A类中调用了集合HashMapArrayList等集合如何在A类中重写这些集合的toString方法

原文地址: http://www.cveoy.top/t/topic/e13N 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录