gpt4 book ai didi

java - 数据结构使用

转载 作者:行者123 更新时间:2023-11-30 03:03:00 25 4
gpt4 key购买 nike

我最近遇到一个问题,我需要在 java 中显示文件中的最后 n 行。它类似于在java中实现unix的tail函数,但我只有readline()方法和一个检查文件末尾的方法。没有其他方法。我正在考虑一种使用队列数据结构的方法,如下所示:

  • 从文件的第一行开始读取 n 行。
  • 将读取的 n 行存储在队列中。
  • 检查是否已到达文件末尾。如果是,则打印队列的内容。
  • 如果没有,则再读取 n 行并将它们插入队列。

有人能想到其他方法吗?

最佳答案

如果使用大小为 n 的环形缓冲区来覆盖最旧的条目呢?它基本上看起来像下面的代码。我编写了读取文件的函数,但您应该明白了。

String[] lines = new String[n];
int i = 0;
while(!file.eof()) {
String line = file.readLine();
lines[i] = line;
i = (i + 1) % n;
}

for(int j = 0; j < n; j++) {
if (lines[i] != null) {
System.out.println(lines[i]);
}
i = (i + 1) % n;
}

关于java - 数据结构使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com