如何把数组的第3到第6个的元素的值改为6

使用Arrays.fill()方法把数组的第3到第6个的元素的值改为6

示例代码

 public static void main(String[] args) {
        int[] array = {1, 3, 4, 2, 5, 7, 0, 3};
        System.out.println("修改前" + Arrays.toString(array));
        Arrays.fill(array, 2, 6, 6);
        System.out.println("修改后" + Arrays.toString(array));
    }

输出结果如下:
在这里插入图片描述

可以发现数组的第3到第6个的元素的值都被改为6了

看看Arrays.fill()的源码了解下

  public static void fill(int[] a, int fromIndex, int toIndex, int val) {
        rangeCheck(a.length, fromIndex, toIndex);
        for (int i = fromIndex; i < toIndex; i++)
            a[i] = val;
    }

可以发现,内部其实也是做个循环,把大于等于fromIndex,和小于toIndex之间的下标都赋值为val。

总结

要是由开发自己来实现这个需求的话,估计也是用循环来做,但是像一些严谨的逻辑判断,往往会被忽视掉,而如果使用Arrays.fill()方法的话,会先有一层判断逻辑,如下:

private static void rangeCheck(int arrayLength, int fromIndex, int toIndex) {
        if (fromIndex > toIndex) {
            throw new IllegalArgumentException(
                    "fromIndex(" + fromIndex + ") > toIndex(" + toIndex + ")");
        }
        if (fromIndex < 0) {
            throw new ArrayIndexOutOfBoundsException(fromIndex);
        }
        if (toIndex > arrayLength) {
            throw new ArrayIndexOutOfBoundsException(toIndex);
        }
    }

这样可以规避一些错误,代码也是给人用的,不要把自己的习惯套在别人身上,可能你会这样操作,别人却是不一样的思路,像我公司的测试,脑回路就很奇葩,往往想的是常人所想不到的,这时候,代码的严谨就很关键了,所以下次再碰到某种需求时想想JDK是不是已经帮我们封装好了这种实现,或者想想是不是有现成的工具类可以使用,不要重复造轮子,同时学会选择好轮子来使用。

发布了297 篇原创文章 · 获赞 311 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/105238601