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

Java 通过数据结构(队列、堆栈、包)进行迭代,java,generics,data-structures,queue,Java,Generics,Data Structures,Queue,从我对对象的理解来看,似乎我们刚刚创建了一个对象,即数据类型事务(类型参数)的队列,集合是对该对象的引用。对吗 第二段代码让我很困惑。我们正在循环打印队列中的内容,但我不确定我是否理解这是如何工作的。集合指向事务类型的队列。看起来我们正在为对象事务创建一个引用t,并对引用集合进行处理。非常混乱。这是java在处理迭代器时使用的语法糖。队列实现了Iterable接口。for循环请求集合的迭代器,并知道如何处理它 对于实现Iterable的每个类,您都可以使用这种语法。这是java处理迭代器的语法优

从我对对象的理解来看,似乎我们刚刚创建了一个对象,即数据类型事务(类型参数)的队列,集合是对该对象的引用。对吗


第二段代码让我很困惑。我们正在循环打印队列中的内容,但我不确定我是否理解这是如何工作的。集合指向事务类型的队列。看起来我们正在为对象事务创建一个引用t,并对引用集合进行处理。非常混乱。

这是java在处理迭代器时使用的语法糖。队列实现了
Iterable
接口。for循环请求
集合的迭代器,并知道如何处理它


对于实现Iterable的每个类,您都可以使用这种语法。

这是java处理迭代器的语法优势。队列实现了
Iterable
接口。for循环请求
集合的迭代器,并知道如何处理它


对于实现
Iterable
的每个类,您都可以使用此语法。

这里发生的事情是
队列
有一个
迭代器()
方法。当您将它馈送到
foreach循环时,就像您在这里所做的那样,您正在调用一个迭代器对象。接下来,for循环开始遍历该迭代器中的对象

这里发生的是
队列
有一个
迭代器()
方法。当您将它馈送到
foreach循环时,就像您在这里所做的那样,您正在调用一个迭代器对象。接下来,for循环开始遍历该迭代器中的对象

在最终的类文件中,“for each”符号实际上被替换为:

for(Transaction t: collection)
{ StdOut.println(t); }
这只是获得一个迭代器,并将
t
设置为每次通过循环时迭代器的下一个值。这可以通过实现
Iterable

的任何对象来实现,在最终的类文件中,“for each”符号实际上被替换为:

for(Transaction t: collection)
{ StdOut.println(t); }
这只是获得一个迭代器,并将
t
设置为每次通过循环时迭代器的下一个值。这可以通过实现
Iterable
For
For(事务t:collection)
读取:

对于集合中的每个事务

对于交易t超过收集。

对于
对于(交易t:收集)
读取:

对于集合中的每个事务

有关交易记录的详细信息,请参阅。队列是Java集合框架的一部分,因此实现了Iterable接口。for-each快捷方式使用该事实,并使用队列生成的迭代器对象对所有元素进行迭代。 这相当于:

for(Iterator i = collection.iterator(); iterator.hasNext(); Transaction t = iterator.next())
Iterator I=collection.Iterator();
对于(;;I.hasNext()){
事务t=I.next();
标准品println(t);
}
请参阅。队列是Java集合框架的一部分,因此实现了Iterable接口。for-each快捷方式使用该事实,并使用队列生成的迭代器对象对所有元素进行迭代。 这相当于:

for(Iterator i = collection.iterator(); iterator.hasNext(); Transaction t = iterator.next())
Iterator I=collection.Iterator();
对于(;;I.hasNext()){
事务t=I.next();
标准品println(t);
}

我认为这是最好的解释我认为这是最好的解释