簡體   English   中英

如何從ArrayList打印所有元素?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM