在 Java 中,重写 HashMap、ArrayList 等集合的 toString 方法可以帮助您自定义输出格式,使其更易于阅读和理解。

方法:

  1. 创建子类: 创建继承自 HashMap 或 ArrayList 的新类,例如:
private class MyHashMap<K, V> extends HashMap<K, V> {
    // 重写 toString 方法
}

private class MyArrayList<E> extends ArrayList<E> {
    // 重写 toString 方法
}
  1. 重写 toString 方法: 在新类中重写 toString 方法,实现您想要的输出格式。

  2. 声明集合: 在您的类中声明 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 的内容。

优点:

  • 自定义输出格式: 可以根据需要灵活控制输出结果的格式。
  • 可读性提高: 更加直观的展示集合内容,方便阅读和理解。
  • 代码复用: 可以将重写的 toString 方法应用于不同的集合类。

注意:

  • 重写 toString 方法不会改变集合本身的存储结构和功能。
  • 确保重写的方法能够正确地处理空集合的情况。

通过重写 toString 方法,您可以更灵活地控制集合的输出格式,使其更符合您的需求。

Java 集合重写 toString 方法: 自定义输出格式

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

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