Iterator Java存储对象

时间:2015-05-14 11:29:23

标签: java iterator

我需要使用迭代器存储对象,但我发现最后一个元素,你觉得怎么样?

if (links.size()>0) {
    for (Iterator<Link> iterator = links.iterator();
        iterator.hasNext();) {
        Link link = (Link) iterator.next();
        item.setLink(link);
        objects.add(item);
    }
}

objects,我转到item我找到了最后一个链接,那我该怎么办?这个想法是否有效item.setLink( list of links);

1 个答案:

答案 0 :(得分:1)

由于代码有几个问题,很难说出你想要实现的目标:

  • 你在每次迭代中都在类对象中设置链接,这就是为什么只剩下最后一个元素的原因(这假设.setLink()方法不会在里面做任何有趣的事情)
  • 如果您的对象集合(它是集合吗?)是一个集合,并且项目hashCode方法根据链接值计算其值,则只替换您的元素

这只是猜测,但也许这就是你想要做的事情?

for (Link link : links) { // works only if your collection is properly typed
    MyClass item = new MyClass();
    item.setLink(link);
    objects.add(item);
}

其他一些建议:

  • 使用增强型for循环(如上所示)
  • if(links.size()&gt; 0){line is redundant - 如果集合为空,你的循环将什么都不做