我在 Java 中玩弄这样的数据结构,我想出了如何对数组或对象上的项目进行排序。我希望某些单词按特定顺序排列,我可以使用 Bufferedreader HashMap、ArrayList。我想要做的是在阅读前 42 行之后的任何时候,如果某行是空白的(即长度为 0 的字符串),则输出在该行之前出现 42 行的行。另外,如何更改此程序以一次读取整个输入一行,然后输出偶数行(从第一行第 0 行开始),然后是奇数行。我发布了我拥有的代码远的。
public static void doIt(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++;
}
Collections.sort(s);
Iterator<String> i = s.iterator();
while (i.hasNext()) {
w.println(i.next());
}
}
public static void main(String[] args) {
try {
BufferedReader r;
PrintWriter w;
if (args.length == 0) {
r = new BufferedReader(new InputStreamReader(System.in));
w = new PrintWriter(System.out);
} else if (args.length == 1) {
r = new BufferedReader(new FileReader(args[0]));
w = new PrintWriter(System.out);
} else {
r = new BufferedReader(new FileReader(args[0]));
w = new PrintWriter(new FileWriter(args[1]));
}
long start = System.nanoTime();
doIt(r, w);
w.flush();
long stop = System.nanoTime();
System.out.println("Execution time: " + 10e-9 * (stop-start));
} catch (IOException e) {
System.err.println(e);
System.exit(-1);
}
}