You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何将输入序列元素按每两个一组组成有序对?

解决方案

要实现每两个相邻元素组成有序对的需求,核心是按步长2遍历列表,每次取当前索引和下一个索引的元素配对,具体代码如下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class RelationPair {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String relation = scanner.nextLine();
        scanner.close();

        List<String> rel = Arrays.asList(relation.split(" "));
        List<String> pairs = new ArrayList<>();

        // 步长为2遍历,确保每次取i和i+1组成一对
        for (int i = 0; i < rel.size(); i += 2) {
            // 防止输入奇数个元素时出现索引越界
            if (i + 1 < rel.size()) {
                pairs.add("(" + rel.get(i) + ", " + rel.get(i + 1) + ")");
            }
        }

        String formattedResult = String.join(", ", pairs);
        System.out.println("RELATION: { " + formattedResult + " }");
    }
}

你之前代码的问题分析

第一个代码片段

直接用String.join拼接所有元素,只是把空格替换成逗号,完全没有做分组处理,自然无法生成有序对结构。

第二个代码片段

循环逻辑存在错误:

  • 循环条件i < rel.size()/2会让i从0遍历到size/2 -1,比如输入6个元素时,i会取0、1、2
  • 每次取i和i+1,会得到(0,1)、(1,2)、(2,3)这样的连续配对,而非你需要的(0,1)、(2,3)、(4,5)分组配对
  • 正确的遍历方式应该是让i每次增加2,跳过已经配对过的元素

内容的提问来源于stack exchange,提问作者mint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:40:57