java - 从文件中打印偶数行和奇数行

标签 java list sorting data-structures

我试图从文件中读取,然后首先打印偶数元素,然后打印奇数行。最好读取这些行并将它们存储在偶数列表中和奇数列表中,然后打印每个列表吗?或者有更有效的方法来解决这个问题吗?

下面的代码片段是我进行排序的方法...到目前为止,它只是将输入存储到列表中并打印它们。有没有一种有效的方法来打印偶数行单词,然后打印奇数行?

public static void test(BufferedReader r, PrintWriter w) throws IOException {

    ArrayList<String> s = new ArrayList<String>();

    String line;
    int n = 0;
    while ((line = r.readLine()) != null) {
        s.add(line);
        n++;
    }
    Iterator<String> i = s.iterator();
    while (i.hasNext()) {
        w.println(i.next());
    }
}

提前感谢您的任何帮助/意见!

最佳答案

嗯,最好的办法是在阅读时打印偶数行,并存储奇数行以供以后打印。

ArrayList<String> s = new ArrayList<String>();

String line;
int n = 0;
while ((line = r.readLine()) != null) {
    if(n % 2 == 0){
        s.add(line);
    }
    else{
        w.println(line);
    }
    n++;
}
Iterator<String> i = s.iterator();
while (i.hasNext()) {
    w.println(i.next());
}

这将需要的空间量减少一半。另一种选择可能是将奇数行打印到字符串,然后将该值打印到输出流 - 对于较短的输入可能更有效

关于java - 从文件中打印偶数行和奇数行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18940268/

相关文章:

java - 使用远程处理对象的服务 jboss 出现问题

java - 得墨忒耳法则 - 为什么我需要使用 setter/getter ?

r - 通过使用另一列索引到列表中来在数据框中创建一个新列?

C 中的计数排序显然有效,但二进制搜索无效

ruby - 基于多个键/值对的自定义哈希排序数组

java - 如何从其他 openshift 帐户访问 openshift 上托管的 mysql 数据库

java - 这个实现对于单例来说正确吗?

javascript - 使用 lodash .groupBy。如何为分组输出添加自己的键?

java - Dropwizard ScheduledExecutorService

python - 将字符串添加到 python 列表的每个元素