📜  如何在Java中覆盖 ArrayList 的 toString 方法?(1)

📅  最后修改于: 2023-12-03 14:52:46.224000             🧑  作者: Mango

如何在Java中覆盖 ArrayList 的 toString 方法?

Java中的ArrayList是一种动态数组,可以自动扩容,并且提供了大量的方法来操作数组元素。在使用ArrayList时,有时需要将其转换为字符串以便于输出或者调试。Java中的Object类有一个toString方法,可以将对象转换为字符串,但是它只是默认实现,未必符合我们的要求。因此我们需要在ArrayList中重新定义toString方法。

重写toString方法

重写toString方法的步骤如下:

  1. 定义一个新的类继承ArrayList类,重写toString方法
  2. 在toString方法中遍历ArrayList的元素,将元素转换为字符串并拼接到一起
  3. 返回字符串

示例代码如下:

import java.util.ArrayList;

public class MyArrayList<E> extends ArrayList<E> {
    @Override
    public String toString() {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("[");
        for (int i = 0; i < size(); i++) {
            if (i != 0) {
                stringBuilder.append(", ");
            }
            stringBuilder.append(get(i).toString());
        }
        stringBuilder.append("]");
        return stringBuilder.toString();
    }

    public static void main(String[] args) {
        MyArrayList<Integer> myArrayList = new MyArrayList<>();
        myArrayList.add(1);
        myArrayList.add(2);
        myArrayList.add(3);

        System.out.println(myArrayList.toString());
    }
}

在上面的代码中,我们定义了一个MyArrayList类,它继承了ArrayList类,并重写了toString方法。在toString方法中,我们将遍历ArrayList中的元素,将它们转换为字符串,并拼接到一起形成一个字符串返回。在main方法中,我们构造了一个MyArrayList对象,并添加了三个整数元素。然后调用MyArrayList的toString方法输出这个ArrayList对象,可以看到,输出结果符合我们预期。

总结

重写ArrayList的toString方法可以方便我们输出ArrayList的元素,以便于查看和调试。在实际开发中,我们可能会需要定义其他的数据结构,并需要重写它们的toString方法,以便于更好地解释和显示数据结构的内容。