java - 在没有临时列表、队列或其他数据结构的情况下更改 Queue 的元素
问题描述
从 Litvin 的 Java Methods 一书中做练习。一个问题要求创建一个实现 Queue 接口的 LinkedList。
莫尔斯电码消息在程序中表示为字符串队列。每个字符串由点和破折号组成。编写并测试一个方法,将每个问号(用“..--..”表示)替换为句点(“.-.-.-”),保持所有其他代码不变。不要使用任何临时列表、队列或其他数据结构。
由于 LinkedList 实现了一个队列,我无法使用 ListIterator。我不确定如何在不将它们放在临时位置的情况下更改队列中元素的值。我将如何解决这个问题?
解决方案
该问题可以使用一些代码来显示您当前的工作状态。但没有更多信息:
- 队列仅授予您通过 FIFO 设计访问第一个元素的权限。
- 您始终可以删除第一个元素并将其插入到后面。
- 如果您对队列中的所有元素执行此操作而不更改每个元素,则队列最终会处于与以前相同的状态。
因此,这将是仅使用 Queue 接口的可能解决方案:
public void replaceQuestionmarks(Queue<String> input) {
for(int i = 0; i<input.size(); input++) {
String current = input.remove();
input.add(questionMarkToPeriod(current));
}
“questionMarkToPeriod”将是条件替换的一种方法。
编辑:忘记队列中的泛型类型。
推荐阅读
- python - Using TEI XML parser in a loop
- python - Accessing the Nelder-Mead simplex at every iteration using scipy.optimize.minimize
- c - 我无法通过打印在指定范围内具有唯一数字的所有 3 位数字来理解逻辑
- reactjs - 根据另一个选择框的值动态加载选择框的选项,但依赖选择不默认为第一个选项
- javascript - 如何使用 Chrome 扩展程序检测您是否在 Zoom 通话中
- list - F# 中没有 cons 运算符或 curried cons 函数?
- jenkins - 作业中的批量更新参数
- r - 使用 ggplot2 对绘图进行条件格式设置
- codeigniter-3 - Codeigniter 3 if 语句无法正常工作
- prolog - 划分列表代码片段我不明白