[英]How to print all the elements from a ArrayList?
我正在尝试打印我添加到我的arraylist中的所有元素,但是它只打印地址而不是字符串。
有人可以帮我或给出一些提示吗? 我整个下午都在搜寻
您需要重写Autuer的toString方法以String格式返回其内容
您也可以使用foreach来完成它;)
for(Auteur a: auteurs){
System.out.print(a.getName() + " - " + a.getNumber());
}
Java中的每个对象都继承
public String toString();
从java.lang.Object
在您的Auteur
类中,您需要编写一些类似于以下内容的代码:
.... ....
@Override
public String toString() {
return "Name: "+this.name;
}
尝试如下在Auter
类中定义toString()
方法:
public String toString() {
return this.getName() + " - " + this.getNumber());
}
并且您的代码将按您的意愿执行。 System.out.println
调用参数的toString()
方法并将其输出到输出控制台。
itr.next()
返回Auteur
对象,而不是String
。 要打印您需要输入与投它的名字Auteur
,然后打印出来,如果你有该类的打印方法Auteur
。
Auteur aut = (Auteur) itr.next();
System.out.println(aut.printMethod());
您所看到的称为对象的默认toString 。 它是其所属类的FQCN(完全限定的类名)和该对象的hashCode的组合。
引用toString的JavaDoc:
Object类的toString方法返回一个字符串,该字符串包括该对象是其实例的类的名称,符号字符“ @”以及该对象的哈希码的无符号十六进制表示形式。 换句话说,此方法返回的字符串等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
我们可以重写toString
以提供更易读的输出。 看一下下面的两个类,有和没有toString
。 尝试执行main方法并比较两个打印语句的输出。
class Person {
private String name;
@Override
public String toString() {
return "Person [name=" + this.name + "]";
}
}
class Address {
private String town;
}
public class Test {
public static void main(String... args) {
Person person = new Person();
Address address = new Address();
System.out.println("Person is : " + person);
System.out.println("Address is : " + address);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.