zoukankan      html  css  js  c++  java
  • Java系列之数组

    原文首发于微信公众号:jzman-blog,欢迎关注交流!

    本来打算温习一下注解方面的内容作为今天的推送,但是来不及写了,那就一起来看一下数组,数组是用来存放一组具有相同类型数据的数据结构,通过下标来访问数组中的元素。

    数组的定义

    数组的定义主要有两种,一种是先指定数组的大小,然后根据数组元素下标进行赋值,另一种是直接创建一个数组并进行赋值,具体如下:

    //1.定义大小为10的数组
    int[] arrayA = new int[10];
    int arrayB[] = new int[10];
    arrayA[0] = 1;
    arrayB[1] = 2;
    //2.定义数组并赋值
    int[] arrayC = {1,2,3,4,5};

    数组本质

    Java 中的数组实际上是一个类,因此两个数组变量可以指向同一个数组,观察如下代码:

    int[] arrayD = {1,1,1};
    int[] arrayE = arrayD;
    arrayD[0] = 2;
    System.out.println(arrayE[0]);

    显然,执行上述代码结果肯定是 2,上述代码中,将数组 arrayD 的值指向 arrayE,其本质是两个数组 arrayD、arrayE 指向了同一块数组空间,当修改了 arrayD 中某一元素的值,相应的 arrayE 中对应元素值也发生了变化,具体如下图所示:

    这里写图片描述

    注意:当数组作为方法的参数传递时,相当于传递的是数组的引用,因此在方法中对数组的操作也会影响到原来的数组,这一点非常重要。

    数组的复制

    为了得到两个数组元素的每个值都相同的元素,我们可以使用 Java 提供的 arraycopy() 来实现,具体如下:

    int[] arrayD = {1,1,1};
    int[] arrayF = new int[3];
    /复制数组
    System.arraycopy(arrayD, 0, arrayF, 0, 3);
    System.out.println(Arrays.toString(arrayF));

    显然,上述代码执行完数组 arrayF 的值为 1、1、1,如果间接修改了数组 arrayD 中数组元素的值,则完数组 arrayF 的值为 2、1、1,这是结合上下文获得的结果。

    下面顺便说一下 arraycopy 方法参数的含义,具体如下:

    /**
     * 复制数组
     * @param src:原数组
     * @param srcPos:原数组开始被复制的位置
     * @param dest:目标数组
     * @param destPos:目标数组开始的位置
     * @param length:目标数组的长度
     */
    public static void arraycopy​(Object src,
            int srcPos,
            Object dest,
            int destPos,
            int length) {
    }

    数组中好像要注意的东西也就这么多了,当然还有其他关于操作数组的 API ,上面遇到数组之间的赋值影响了原来数组的值,这也是之前自己没有注意到的,今天就写这么多。

    可以选择关注微信公众号:jzman-blog 获取最新更新,一起交流学习!
    这里写图片描述

  • 相关阅读:
    玩转 CSS3 3D 技术
    什么是网站劫持?
    html5 播放 rtsp
    display:none和visibility:hidden两者的区别
    css中div透明度有几种方法设置?
    前端有架构吗?
    HTML a标签打开新标签页避免出现安全漏洞,请使用“noopener”
    写给刚入门的前端工程师的前后端交互指南
    为什么会出现CSS前缀?
    cookies和session得一些理解
  • 原文地址:https://www.cnblogs.com/jzmanu/p/10284778.html
Copyright © 2011-2022 走看看