gpt4 book ai didi

java - 为什么Java中的列表集合不使用new关键字创建迭代器对象

转载 作者:行者123 更新时间:2023-12-01 06:39:27 25 4
gpt4 key购买 nike

我遇到了这段代码,用于从给定的链接列表中删除偶数长度的字符串我不明白为什么迭代器对象 itr 没有使用 new 关键字实例化。这是代码..

public static void removeEvenLength(List<String> list) {
Iterator<String> itr= list.iterator();
while (itr.hasNext()) {
String element=itr.next();
if (element.length()%2==0) {
i.remove();
}
}
}

这是否意味着迭代器方法是静态并且它只返回一个新的可迭代对象,其中list作为其字段。有人可以向我提供一个或多个示例,其中除了我认为的单例构造函数之外,在 Java 中也遇到了类似的实例化方式。谢谢

最佳答案

Does it mean here, that the iterator method is static and it just returns a new iterable object with list as its field.

不,它是一个实例方法。它只是返回对 Iterator<String> 的引用。 。所以正文iterator()方法可能包含 new声明(尽管它可能反过来调用其他东西)。现在让我们将其从迭代器和泛型中剔除 - 类似的情况是:

class Bar {}

class Foo {
Bar createBar() {
return new Bar();
}
}

public class Test {
public static void main(String[] args) {
Foo foo = new Foo();
Bar bar = foo.createBar();
}
}

相同模式:返回不同类型的新实例的实例方法。

关于java - 为什么Java中的列表集合不使用new关键字创建迭代器对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17734260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com