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

Java数组元素替换实现求助:按对应数组映射转换输出

Java数组元素映射替换解决方案

核心思路是建立两个数组元素的一一映射关系,通过快速查找完成输入数组的元素替换,具体实现如下:

实现步骤

  1. 构建映射表:将数组a的元素作为键(Key),数组b对应索引的元素作为值(Value),存入HashMap以实现O(1)时间复杂度的查找。
  2. 生成结果数组:遍历输入数组,对每个元素从映射表中取出对应值,组装成最终结果数组。

完整代码示例

import java.util.HashMap;
import java.util.Map;

public class ArrayReplacer {
    public static void main(String[] args) {
        String[] a = {"1", "2", "3"};
        String[] b = {"a", "b", "c"};
        String[] input = {"3", "2", "1"};
        
        // 校验映射数组长度一致性
        if (a.length != b.length) {
            throw new IllegalArgumentException("数组a与b的长度必须相等");
        }
        
        // 初始化映射关系
        Map<String, String> elementMap = new HashMap<>();
        for (int i = 0; i < a.length; i++) {
            elementMap.put(a[i], b[i]);
        }
        
        // 生成替换后的结果数组
        String[] result = new String[input.length];
        for (int i = 0; i < input.length; i++) {
            // 若输入元素无对应映射,可根据需求调整处理逻辑(此处返回null)
            result[i] = elementMap.get(input[i]);
            
            // 可选:对无映射元素抛出异常
            // if (result[i] == null) {
            //     throw new RuntimeException("输入元素'" + input[i] + "'未找到对应映射");
            // }
        }
        
        // 打印结果
        for (String item : result) {
            System.out.print(item + " ");
        }
        // 输出:c b a
    }
}

关键注意事项

  • 数组长度校验:必须确保数组a和b长度一致,否则会导致部分元素无法建立映射,或出现索引越界问题。
  • 无映射元素处理:如果输入数组包含a中不存在的元素,elementMap.get()会返回null。你可以根据业务需求,选择抛出异常、保留原元素或设置默认值。
  • 性能优化:使用HashMap的查找操作是常数时间复杂度,整体算法时间复杂度为O(n),适合处理大规模数组。

内容的提问来源于stack exchange,提问作者The Black Marshmello

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:03:22