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 获取最新更新,一起交流学习!
    这里写图片描述

  • 相关阅读:
    SharePoint 2013 中的SQL Server 安全
    SharePoint 2013 的HTML5特性之响应式布局
    SharePoint 2013 一些小技巧
    SharePoint 2013 排错之"Code blocks are not allowed in this file"
    SharePoint 2013 创建搜索中心及搜索设置
    SharePoint 2013 使用PowerShell创建State Service
    SharePoint 2013 内容部署功能简介
    SharePoint 使用PowerShell恢复误删的网站集
    SharePoint 自定义WebPart之间的连接
    linux之misc及使用misc创建字符设备
  • 原文地址:https://www.cnblogs.com/jzmanu/p/10284778.html
Copyright © 2011-2022 走看看