在实验过程中的一些小知识——List的toString
List的toString()
在实验二中,需要编写一个可以输出List中的对象的信息的代码,例如List
在试验与查阅资料之后,我发现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中对象的内容的功能,这使得我们不必通过循环来获得文本。
浙公网安备 33010602011771号