数组填充Array.fill()

本文详细介绍了Java中Arrays.fill()方法的两种使用方式。第一种用于填充整个数组为特定值,第二种则是在数组的指定区间内插入特定值。通过具体示例展示了如何初始化数组并设置其元素为特定值。

用法一:

Arrays.fill( a1, value );

注:a1是一个数组变量,value是一个a1中元素数据类型的值,作用:填充a1数组中的每个元素都是value。

例如:

        int m = matrix.length;
        int n = matrix[0].length;
        int[] min = new int[m];
        int[] max = new int[n];
        Arrays.fill(min, Integer.MAX_VALUE);
        Arrays.fill(max, Integer.MIN_VALUE);

用法二:插入值

String[] a9 = new String[6];

Arrays.fill(a9, "Hello");

Arrays.fill(a9, 3, 5,"World");

结果是 a9[] = {Hello,Hello,Hello,World,World,Hello};

第一个参数指操作的数组,第二个和第三个指在该数组的某个区域插入第四个参数,第二个参数指起始元素下标(包含该下标),第三个参数指结束下标(不包含该下标),注意:java的数组下标从0开始

JavaScript 中,`Array.fill()` 和 `Array.from()` 是用于创建或填充数组的方法,但它们的用途和行为存在显著差异。 ### `Array.fill()` `Array.fill()` 方法用于将数组中的所有元素填充为一个固定值。该方法会修改原始数组,并返回该数组。如果未提供起始索引和结束索引,则整个数组都会被填充;如果提供了起始索引和结束索引,则只填充指定范围内的元素[^2]。 #### 语法: ```javascript array.fill(value, start, end) ``` - `value`:用来填充数组的值。 - `start`:开始填充的索引(可选,默认为 0)。 - `end`:停止填充的索引(不包括该索引位置,可选,默认为数组长度)。 #### 示例: ```javascript const arr = [1, 2, 3, 4]; arr.fill(0, 1, 3); console.log(arr); // 输出: [1, 0, 0, 4] ``` 需要注意的是,当使用 `Array.fill()` 填充引用类型时,填充的是引用地址,而不是深拷贝对象,这可能导致多个数组元素指向同一个对象[^4]。 --- ### `Array.from()` `Array.from()` 方法用于从一个类数组对象或可迭代对象创建一个新的数组实例。它不会修改原始数组,而是返回一个新的数组[^5]。 #### 语法: ```javascript Array.from(arrayLike, mapFn, thisArg) ``` - `arrayLike`:一个类数组对象或可迭代对象(如字符串、Set、Map 等)。 - `mapFn`:可选的映射函数,用于在创建数组时对每个元素进行处理。 - `thisArg`:执行 `mapFn` 时使用的 `this` 上下文。 #### 示例: ```javascript const arr = Array.from('hello'); console.log(arr); // 输出: ['h', 'e', 'l', 'l', 'o'] const arr2 = Array.from([1, 2, 3], x => x * 2); console.log(arr2); // 输出: [2, 4, 6] ``` `Array.from()` 通常用于将 DOM 集合(如 `NodeList`)转换为真正的数组,以便使用数组方法如 `map()`、`filter()` 等。 --- ### 主要区别 | 特性 | `Array.fill()` | `Array.from()` | |------|----------------|----------------| | **用途** | 填充现有数组中的元素 | 从类数组对象或可迭代对象创建新数组 | | **是否修改原数组** | 是 | 否 | | **是否返回新数组** | 否(返回修改后的原数组) | 是 | | **是否支持映射函数** | 否 | 是 | | **应用场景** | 快速用固定值填充数组 | 将类数组对象转换为数组并进行转换处理 | --- ### 使用场景对比 - 当需要将一个数组的所有元素设置为某个固定值时,使用 `Array.fill()` 是最直接的方法。例如,初始化一个全为 0 的数组 `new Array(5).fill(0)`。 - 当需要从一个类数组对象(如 `arguments` 对象或 `NodeList`)创建数组时,`Array.from()` 是首选方法。 --- ### 常见陷阱 - `Array.fill()` 会直接修改原始数组,这可能在某些情况下不是期望的行为。 - 使用 `Array.fill()` 填充引用类型时,所有数组元素将引用同一个对象,这可能导致意外的副作用[^4]。 - `Array.from()` 在处理大型数据集时可能会比 `Array.fill()` 慢一些,因为它需要遍历可迭代对象并逐个创建新元素。 --- ### 总结 `Array.fill()` 和 `Array.from()` 都是 JavaScript 中用于数组操作的重要方法,但它们的用途和行为有显著不同。`Array.fill()` 更适合用于快速填充已有数组,而 `Array.from()` 则适用于从类数组对象或可迭代对象创建新数组。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值