java - ArrayList 中的一行未打印出来

标签 java linked-list

我的代码必须读取 50 行输入并以相反的顺序输出它们,然后是其他 50 行,因此输出从第 50 行开始,到第 1 行,然后从第 100 行开始到第 50 行我让它工作。但唯一的事情是,第 51 行没有打印出来,我不知道出了什么问题。

public static void doIt(BufferedReader r, PrintWriter w) throws IOException {
    String newString;
    LinkedList<String> list = new LinkedList<String>();
    int i = 0;
    while ((newString = r.readLine()) != null) {
        if (i < 50) {
            i++;
            list.addFirst(newString);
        } else {
            for (String s : list)
                w.println(s);
            list.clear();
            i = 0;
        }
    }

    for (String s : list)
        w.println(s);

}

最佳答案

按如下方式更改代码:

 i++; 
list.addFirst(newString); 

list.addFirst(newString); 
 i++; 

因为您将 newString 添加到列表的方式会跳过一次计数

更新:

抱歉,我必须修正我的答案,而不是删除它。我检查了两次,并根据正确的答案添加了这一行:-)

list.addFirst(newString);

关于java - ArrayList 中的一行未打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25881942/

相关文章:

java - JsonView 无法与 Spring 一起正常工作

c - C 中带有随机主元的链表快速排序

c++ - 我可以在析构函数中调用公共(public)函数来释放内存吗?

c++ - 将 vector 值放在链表中的节点上

java - 如何停止影响其他内容的 CSS 到我们的站点?

java - 创建具有大量节点(1000 万)的 XML 文件

c++ - 手写链表出现段错误,我不明白为什么

java - 为什么我不能在链表上使用 DescendingIterator?

Java Spark 禁用 Hadoop 发现

java - FindBugs版本兴起后规则减少