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

是否存在指定起始索引用小数组填充大数组的函数?

当然有啦!不同编程语言里都有对应的方法,甚至你可以自己快速实现一个符合需求的工具函数。我给你整理了几个常用语言的实现方案,完全匹配你的示例场景:

Python 实现

Python的列表切片操作天生就适合做这种填充,简洁又直观。如果要严格保证大数组长度不变(避免小数组过长导致大数组扩容),可以加个边界判断:

def fill_array(large_arr, small_arr, start_index):
    # 计算能容纳的最大元素个数,防止越界
    max_fill_length = len(large_arr) - start_index
    actual_fill_length = min(len(small_arr), max_fill_length)
    # 替换对应切片位置的元素
    large_arr[start_index:start_index+actual_fill_length] = small_arr[:actual_fill_length]
    return large_arr

# 测试你的示例
a = [0, 0, 0, 0, 0]
b = [1, 2, 3]
fill_array(a, b, 0)
print(a)  # 输出: [1, 2, 3, 0, 0]

b = [4, 5]
fill_array(a, b, 3)
print(a)  # 输出: [1, 2, 3, 4, 5]

JavaScript 实现

JS里可以用Array.prototype.splice()方法来完成,它能直接在数组指定位置替换元素。同样,我们可以加个边界处理来保证大数组长度不变:

function fillArray(largeArr, smallArr, startIndex) {
    const availableLength = largeArr.length - startIndex;
    const takeLength = Math.min(smallArr.length, availableLength);
    // splice参数:起始位置、要删除的元素数、要插入的元素
    largeArr.splice(startIndex, takeLength, ...smallArr.slice(0, takeLength));
    return largeArr;
}

// 测试示例
let a = [0, 0, 0, 0, 0];
let b = [1, 2, 3];
fillArray(a, b, 0);
console.log(a); // 输出: [1, 2, 3, 0, 0]

b = [4, 5];
fillArray(a, b, 3);
console.log(a); // 输出: [1, 2, 3, 4, 5]

Java 实现

Java中可以用原生的System.arraycopy()方法,这是效率很高的数组复制工具,专门用来处理这类数组内容替换的场景:

import java.util.Arrays;

public class ArrayFillTool {
    public static void fillArray(int[] largeArr, int[] smallArr, int startIndex) {
        // 计算安全的复制长度,避免数组越界异常
        int copyLength = Math.min(smallArr.length, largeArr.length - startIndex);
        // 源数组、源起始位置、目标数组、目标起始位置、复制长度
        System.arraycopy(smallArr, 0, largeArr, startIndex, copyLength);
    }

    public static void main(String[] args) {
        int[] a = {0, 0, 0, 0, 0};
        int[] b = {1, 2, 3};
        fillArray(a, b, 0);
        System.out.println(Arrays.toString(a)); // 输出: [1, 2, 3, 0, 0]

        b = new int[]{4, 5};
        fillArray(a, b, 3);
        System.out.println(Arrays.toString(a)); // 输出: [1, 2, 3, 4, 5]
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:57:42