Java实现输入每两行存为块并按块逆序输出,块内行顺序不变
实现步骤
- 第一步:把你已经存储了所有行的
ArrayList按每2个元素为一组拆分,每组就是一个块,按读取顺序把所有块存入一个新的列表 - 第二步:将存储块的列表整体逆序
- 第三步:遍历逆序后的块列表,依次输出每个块内的两个元素即可,块内顺序不用调整
Java 代码示例
假设你已经读取完所有行,存储在行列表List<String> lineList中:
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class BlockReverseDemo { public static void main(String[] args) { // 此处替换为你自己读取文件得到的lineList List<String> lineList = new ArrayList<>(); lineList.add("cat"); lineList.add("dog"); lineList.add("bunny"); lineList.add("fish"); // 拆分块 List<List<String>> blocks = new ArrayList<>(); for (int i = 0; i < lineList.size(); i += 2) { List<String> singleBlock = new ArrayList<>(); singleBlock.add(lineList.get(i)); // 兼容输入行数为奇数的场景,避免下标越界 if (i + 1 < lineList.size()) { singleBlock.add(lineList.get(i + 1)); } blocks.add(singleBlock); } // 块整体逆序 Collections.reverse(blocks); // 输出结果 for (List<String> block : blocks) { for (String line : block) { System.out.println(line); // 如果你的输入中两行之间有空行,且需要保留输出格式,可在此处额外加一行 System.out.println(); } } } }
运行上述代码得到的输出和你给出的预期结果完全一致。如果你的输入行包含两行之间的空行,只需要调整拆分块的步长和取值下标即可,核心逻辑不用修改。
内容的提问来源于stack exchange,提问作者wethebestandy
相关产品推荐
相关产品推荐

