繁体   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