ttttwr

导航

在实验过程中的一些小知识——List的toString

List的toString()

在实验二中,需要编写一个可以输出List中的对象的信息的代码,例如List a = ["a", "b"],则需要输出["a", "b"]这种形式的信息。
在试验与查阅资料之后,我发现Java的ArrayList本身已经对toString函数做了重载,实际上以下代码就可以直接得到我们希望的结果:

List<String> a = new ArrayList<>();
a.add("a");
a.add("b");
System.out.println(a); // 输出[a, b]

实际上,ArrayList的toString函数是将子对象的toString函数返回值拼接在了括号里,也就是说,如果我们通过如下的方式实现了一个类,那么我们的List打印出的结果也就是我们所期望的List中的子对象的信息:

class Obj {
    private final String name;
    public Obj(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Obj{ " + name + " }";
    }
}
public class Main {
    public static void main(String[] args) {
        List<Obj> a = new ArrayList<>();
        a.add(new Obj("a"));
        a.add(new Obj("b"));
        System.out.println(a); // 输出 [Obj{ a }, Obj{ b }]
    }
}

通过这种“递归”的toString调用,就可以实现输出List中对象的内容的功能,这使得我们不必通过循环来获得文本。

posted on 2024-04-03 15:46  TTTTWR  阅读(4)  评论(0)    收藏  举报