[英]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.