【问题标题】:Iterator is adding the wrong address迭代器添加了错误的地址
【发布时间】:2017-08-12 00:12:18
【问题描述】:

在我的程序中,我添加了另一个类类型的 ArrayList,但是当我迭代列表时,我得到了错误的地址。 例如我的代码是

    ArrayList<Student> stdntList = new ArrayList<Student>();
    stdntList.add(new Student("Candace","633501"));
    stdntList.add(new Student("Curtis ","634572"));
    stdntList.add(new Student("Amber","623343"));
    System.out.println(stdntList);

    Iterator itr = stdntList.iterator();
    while(itr.hasNext())
    {
        System.out.println("Student: " + itr.next());
    }

我的输出是

Student Name: Candace Student ID633501
Student Name: Curtis  Student ID634572
Student Name: Amber Student ID623343
[Student@659e0bfd, Student@2a139a55, Student@15db9742]
Student: Student@659e0bfd
Student: Student@2a139a55
Student: Student@15db9742

【问题讨论】:

  • 请消除歧义:“地址”是什么意思?理想情况下,您应该提供所需的输出作为问题的一部分。

标签: java data-structures iterator iteration


【解决方案1】:

为了获取地址,您应该打印类似这样的内容System.out.println("Student: " + itr.next().getAddress());

就像现在一样,它会打印 .toString() 方法上的所有内容。您必须重写此方法才能通过仅调用对类的引用来打印地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    相关资源
    最近更新 更多