Queue<Transaction> collection = new Queue<Transaction>
和
for(Transaction t: collection)
{ StdOut.println(t); }
根据我对对象的理解,看起来我们刚刚创建了一个数据类型为事务(类型参数)的对象,即队列,而集合是对该对象的引用。正确的?
然后第二段代码让我感到困惑。我们正在循环打印队列中的内容,但我不确定我是否理解这是如何工作的。 Collection 指向Transaction 类型的Queue。看起来我们正在创建对对象 Transaction 的引用,并用它对引用集合执行某些操作。很困惑。
最佳答案
这是java处理迭代器的语法糖。 Queue 实现了 Iterable 接口(interface)。 for 循环请求集合
的迭代器并知道如何处理它。
对于每个实现 Iterable
的类,您都可以使用此语法。
关于java - 通过数据结构(队列、堆栈、包)进行迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18078361/