Java“迭代器”关键字
我在考试中被要求用Java编写一个队列算法。我使用Iterator
来提取队列的元素。(元素由字符组成:'R'
或'W'
或'B'
)。该问题禁止创建或销毁输入队列的任何字符。我只是想问一下,使用Iterator
提取元素是否会“创建”字符?
我的算法是:
Q=Queue
Iterator dummy=Q.elements();
while (//some condition){
if (dummy.data=='R')
...
...
这就是算法。我想问我是否“创建”了元素,因为我因此获得了0
分(
# 1 楼答案
在队列上没有像
elements()
这样的方法。它是element()
,而Retrieves but does not remove element from the queue
正确的方法是queue.iterator()
不管怎样,从逻辑上讲,你是正确的,你不值得
0
您也可以使用
new for loop
访问# 2 楼答案
不,迭代器不创建任何东西。java中的字符是对象,不可变,并通过引用从数组中传递出去(为了降低内存使用率,它们在后台被重用):
# 3 楼答案
A
char
是一种值类型,因此所有赋值都会产生一个“副本”