我正在查看以下代码,它是使用静态嵌套类的链表实现:
http://www.cs.cmu.edu/~adamchik/15-121/lectures/Linked%20Lists/code/LinkedList.java
我无法理解的一行是:
public boolean contains(AnyType x)
{
**for(AnyType tmp : this)**
if(tmp.equals(x)) return true;
return false;
}
这里的“this”如何允许我们遍历存储在每个节点内的数据?
最佳答案
因为本例中的 this
是一个 Iterable
(更具体地说,是一个 LinkedList
)。
for-each
Java 5 中引入的循环是用于调用 Iterable
的 Iterator
的语法糖。在您的示例中,代码相当于
for (Iterator<AnyType> i = this.iterator(); i.hasNext(); ) {
if (i.next().equals(x)) return true;
}
关于java - 当类包含嵌套静态类时使用 "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29784758/