zoukankan      html  css  js  c++  java
  • Java笔记6数组

    知识大纲
    一、数组的应用
    由于数组是用来存储数据的,所以,它的操作总是增、删除、改、查的操作。
    数组做为一种最基本的数据结构,它在查询上效率是最高的。但是在增加、
    删除的操作效率是最低的。

    因为,
    数组的长度一旦确定,是不能改变的,所以,你新增元素时,需要
    重新扩展一个更大的数组出来。
    数组元素一旦删除,则它后面的所有的元素都要依次向前移动1次。

    ---------------------
    int[] arr1 = new int[5];
    int[] arr2 = arr1; //ok
    //此处只创建了1个对象,但是有2个引用,这2个引用指向一个对象。
    如:
    arr2[3] = 100;
    System.out.println(arr1[3]); // 100

    ------------------
    数组元素的COPY
    有2种方式
    1.利用 System.arraycopy 方法
    System.arraycopy(
    Object src //源数组
    ,int srcPos //源数组哪个位置开始
    ,Object dest //目标数组
    ,int destPos //目标数组哪个位置开始放
    ,int length //从源数组中COPY多少个元素到目标数组
    );
    注:使用此方法前,源数组与目标数组都必需初始化。
    如:
    int[] arr1 = new int[]{1,2,3,4,5}; //[1 2 3 4 5]
    int[] arr2 = new int[arr1.length+2]; //[0 0 0 0 0 0 0]
    //
    System.arraycopy(arr1,1,arr2,2,arr1.length-2);
    //此时,arr2中的元素是:[0 0 2 3 4 0 0 ]

    此方法的效率非常好。

    2. 利用 java.util.Arrays类的工具方法
    int[] copyOf(int[] original, int newLength);
    此方法有很多重载,它的作用是基于original数组与长度来创建一个
    新的数组,这个新数组的元素值与original的元素是一样的,如果这个
    newLength大于original 数组长度,则多出的元素以0填充,如果这个
    newLength小于original 数组长度,则把多出的元素截取掉。

    如:
    int[] arr1 = new int[]{1,2,3,4,5};
    int[] arr2 = Arrays.copyOf(arr1,arr1.length);
    //则arr2的元素值与arr1是一模一样的。
    int[] arr3 = Arrays.copyOf(arr1, arr1.length + 2);
    //arr3 元素是 [1 2 3 4 5 0 0]
    int[] arr4 = Arrays.copyOf(arr1 arr1.length - 2);
    //arr4 元素是 [1 2 3 ]

    ---
    Arrays数组工具类
    toString 方法
    copyOf 方法
    fill 方法
    ...

    赢在别人休息时,让优秀成为一种习惯。
  • 相关阅读:
    自定义 radio 的样式,更改选中样式
    【Vue中的坑】vue项目中动态绑定src不显示图片解决方法
    js复制内容到剪切板
    js实现鼠标单击或者双击事件
    代码修改shader Properties uniform变量
    关于unity中BindChannels的理解
    shader Category
    Unity手游之路自动寻路Navmesh之高级主题
    Unity手游之路自动寻路Navmesh之入门
    Unity 自动寻路Navmesh之跳跃,攀爬,斜坡
  • 原文地址:https://www.cnblogs.com/tarek/p/5411869.html
Copyright © 2011-2022 走看看