如何打印ArrayList中的所有元素?

时间:2013-04-16 17:12:04

标签: java arraylist

我试图打印我添加到我的arraylist中的所有元素,但它只打印地址而不是字符串。
有人可以帮助我或给出一些提示吗?我整个下午一直在寻找

6 个答案:

答案 0 :(得分:3)

您需要覆盖Autuer的toString方法,以String格式返回其内容

答案 1 :(得分:1)

您也可以使用foreach来执行此操作;)

for(Auteur a: auteurs){
    System.out.print(a.getName() + " - " + a.getNumber());
}

答案 2 :(得分:0)

Java中的每个对象都继承

public String toString();

来自java.lang.Object

Auteur课程中,您需要编写类似于以下内容的代码:

.... ....

@Override
public String toString() {
    return "Name: "+this.name;
}

答案 3 :(得分:0)

尝试在toString()课程中定义Auter方法,如下所示:

public String toString() {
    return this.getName() + " - " + this.getNumber());
}

您的代码将按您的意愿执行。 System.out.println调用参数的toString()方法并将其打印到输出控制台。

答案 4 :(得分:0)

itr.next()返回Auteur而不是String的对象。要打印名称,您需要使用Auteur键入它,然后如果您有类Auteur的打印方法,则打印它。

Auteur aut = (Auteur) itr.next();
System.out.println(aut.printMethod());

答案 5 :(得分:0)

您看到的内容称为对象的默认toString。它是它所属类的FQCN(完全限定类名)和对象的hashCode的合并。

从toString的JavaDoc引用:

  

Object类的toString方法返回一个由。组成的字符串   对象是实例的类的名称,at-sign   字符“@”,以及散列的无符号十六进制表示   对象的代码。换句话说,此方法返回一个相等的字符串   价值:

 getClass().getName() + '@' + Integer.toHexString(hashCode())

我们可以覆盖toString以提供更易读的输出。看看下面两个类,有没有toString。尝试执行main方法并比较两个print语句的输出。

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);
    }
}