问题标签 [listiterator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1054 浏览

c++ - 迭代器取消引用然后是“。” 运营商与。“->”运算符

我得到了一些具有以下结构的列表/迭代器的 C++ 代码。

然后代码以the_iter这种方式访问​​ x 和 y:

我想将这些更改为更具可读性的版本:

从我的 C 角度来看,这对于指针解引用完全没问题。迭代器也是这样吗?我的同事有什么理由会使用(*pointer).而不是p->

0 投票
1 回答
95 浏览

c++ - 如何使用迭代器有条件地从列表中删除元素?

问题:

我正在编写一个简单的文件管理器应用程序。在这个程序中,我有一个“目录”类:

和目录对象的链表:

我想"rm -r directorypath"在linux中实现shell命令,所以我需要浏览列表并删除“directorypath”目录及其所有子目录。问题是我不知道如何浏览链接列表并删除其父目录为“directorypath”的所有目录。我试过这两种方法:

方法一:

此方法遇到运行时错误,因为它在第一次删除后无法再访问列表。

方法二:

即使在删除后,此方法也可以完美地访问所有元素,但我不知道如何使用迭代器检查这个 if 条件it

0 投票
2 回答
188 浏览

java - ListIterator last hasNext() 有些东西不明白

假设我运行这段代码,它向我展示了这个:1 10 2 10 3 10

我不明白为什么最后一个hasNext()发生甚至认为我们应该在列表的末尾(在我的理解中)。关于元素 3。

首先,迭代器在 1 上。hasNext()returntrue因为list后面有 2。所以我进入循环,it.next()返回我 1 并将光标设置为 2。当我添加 10 时,它发生在光标位置,因此在 1 和 2 之间。然后,it.next()返回我 2 并将光标设置为 3。然后我添加 10在 2 和 3 之间。但是此时,我没有 3 的下一个,那么为什么要hasNext()返回 true,在列表的最后一个位置添加 12?

0 投票
6 回答
3232 浏览

java - 类数组列表的迭代器

我是 Java 新手,所以如果我的问题看起来很愚蠢,请多多包涵。

我正在学习收藏,我编写了一个程序来存储学生姓名 id 和标记。我将所有这些存储在一个 Arraylist 中。使用 for 循环我可以在我的程序中打印值。但是我不知道如何使用迭代器来做到这一点。我的代码是这样的。

学生.Java

College.Java 对我来说是主要课程

在这种情况下,我得到了正确的输出。

如果我删除 for 循环并用迭代器替换。我收到一些错误,这就是说Object can not be converted as Student

这是我的代码

请指导我这里有什么问题以及如何纠正。

0 投票
2 回答
3906 浏览

java - 尝试从另一个列表中删除项目列表时出现 UnsupportedOperationException

我在下面进行了编码,我不知道出了什么问题,但是 validDatesIterator.remove() 给了我 UnsupportedOperationException 异常。使用 java 1.6

此外,当我调试有效日期时(curValue 最初它给出 27,而不是 26)从元素 27 开始,而不是 26。

可能是一个重复的问题,但搜索了很多,dint find kind of this。请帮忙。

0 投票
3 回答
310 浏览

java - 为什么java API阻止我们一起调用add和remove?

根据Java API-

IllegalStateException - 如果在最后一次调用 next 或 previous 之后既没有调用 next 也没有调用 previous,或者 remove 或 add 没有被调用

remove()- 从列表中删除由 next() 或 previous() 返回的最后一个元素(可选操作)。每次调用下一个或上一个时,此调用只能进行一次。只有在最后一次调用 next 或 previous 之后没有调用 add(E) 时,才能执行此操作。

因为每次我们一起调用时addremove它都应该删除最后一个添加的元素,add原因是这个原因IllegalStateException

例如在我的代码中-

  • next()之前每次打电话remove()
  • remove()不会被调用两次而不调用next()

那么为什么有java.lang.IllegalStateException关于召唤addremove在一起。

我的Java代码是-

在调用next()迭代器之后是在下一个元素。

当我们通过add()迭代器添加元素时,在添加的最后一个元素处向前移动

那为什么要java.lang.IllegalStateException打电话remove()

0 投票
3 回答
1971 浏览

java - 如何使用迭代器进行替换和计数

我无法弄清楚如何使用迭代器替换元素并计算被替换元素的数量。这是我到目前为止的代码:

我已经使用迭代器打印出列表中的元素,但现在我必须使用迭代器来替换并返回替换的数量。在这种情况下,我想用“X”替换“B”并计算“X”的数量。我假设我想将迭代器放在泛型方法中,但我真的不知道该往哪个方向前进......

0 投票
1 回答
47 浏览

python - 脚本执行正常,但未写入指定目录中的任何文件

我正在尝试编写一个脚本,它将遍历指定的目录,并使用新字符串写入任何 .txt 文件。

阅读列维茨基的解释后编辑

脚本执行,但是我得到“目录为空或无法打开文件”异常。

提前感谢您的任何意见。

0 投票
2 回答
59 浏览

python-2.7 - 脚本无法同时打开和附加多个文件

所以试图完成一个非常简单的脚本,这给了我难以置信的困难。它应该遍历指定的目录并打开其中的所有文本文件,并将它们全部附加相同的指定字符串。

问题是它根本没有对文件做任何事情。使用 print 测试我的逻辑,我将第 10 行和第 11 行替换为print f(写入和关闭函数),并获得以下输出:

所以我认为它在 f 变量中存储了 write 函数的正确文件,但是我不熟悉 Mac 如何处理 DS_STORE 或它在临时位置跟踪中扮演的确切角色。

这是实际的脚本:

以及执行后终端中的确切返回:

然而,没有写入提供目录中的 .txt 文件。

0 投票
2 回答
477 浏览

c++ - How to compare (the order) of two bidirectional iterators?

I was wondering if there is a build-in way in C++ to compare the order of two bidirectional iterators. For example, I have a Sum function to calculate the sum between 2 iterators in the same list:

Then: Sum(my_list.begin(),my_list.end()); is fine, but Sum(my_list.end(),my_list.begin()); will cause runtime error.

I was thinking puttingif (Start>End) return 0; to prevent the error. But it seems I cannot compare the iterators like this.