java - 通过数据结构(队列、堆栈、包)进行迭代

标签 java generics data-structures queue

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/

相关文章:

java - 如何访问线程中 Runnable 对象的字段

java - Android APK:重复条目:org/objectweb/asm/AnnotationVisitor.class

ios - 将泛型类型分配给具有 AnyObject 类型的泛型

swift - Swift 编程语言 - 泛型 - Where 子句的问题

arrays - 堆与二叉树-如何实现?

algorithm - 为什么动态数组在空间不足时会特别加倍?

java - TIMEr 在 java 中无法正常工作

java - Maven-surefire-plugin 和 fork 模式

c# - 具有派生参数的派生类和覆盖方法 : how to code it better?

java - 适用于java中大文本存储和计数的表