zoukankan      html  css  js  c++  java
  • 集合框架

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

    集合框架:

    System.arraycopy:
    1.数组对象
    2.从第几个下表开始拷贝
    3.接受的数组对象
    4.从第几个下表开始存放
    5.要拷贝多长

    使用System.arraycopy();拷贝方法,拷贝数组的参数,提高代码的执行效率。

    image

    改善集合每次new对象问题,不要每次传进参数都要new对象,所以我们在第一次创建对象数组时长度就为5,如果本次只传4-5个数据的话那就不需要重新new数组。然后创建一个属性index=0,然后objs[index++]=value;后加加,第一个值等于传进来的val;
    问一下现在的数组长度是否能存储当前值,不能存储的话就重新new一个数组,长度是原来数组的1.75倍,新数组创建完成后就拷贝老数组的数据,从老数组的第0个下表,拷贝给新数组,新数组的第0个放,老数组有多长就拷贝多长,拷贝完成后覆盖老数组,让属性指向新数组。
    然后objs[index++]=val;赋值。

    image

    get:用下表得到存放的数据,给一个下表判断是否大于等于index(存储下标后加加),大于就说明下标越界了。
    size:数组存放数据的长度。反馈出去。

    image

    数组的删除:数组的删除就是覆盖。
    比如我们申请一个数组,数组里面有“A”,“B”,“C”“D”,“E”,“F”,“G”。
    假设我们要删除下标为3里面的数据,就犹如把“E”,“F”,“G”,复制一份粘贴在从 下标3开始的数组内。删除最后一个就直接数组长度减减。

    image

    判断下标是否越界,是越界的话直接抛出越界异常。
    下标没越界的情况下询问它是不是要删除最后一个,是删除最后一个把该下标等于空。数组长度是7的话,减减后就是6,也就是数组对应的下标6,应为数组下标从0开始。(因为java在没有内存地址指向引用的情况下才会回收内存)
    删除第一个的话,就是用System.arrycopy();老数组从下标第i+1个开始拷贝,拷贝给当前自己数组第i个(要删除的位置),拷贝长度是老数组长度减去-i-1的长度。

    image

    image

    测试:移除第一个。

    image

    缩存储容器:请问当前objs.length/index>=3,符合的话就新申请一个数组,数组长度是来数组的2分之一,然后将老数组的第0个开始拷贝给新数组的0个,老数组有多长就放多长。(长度能被3整除删除一半的数组长度)

    image

  • 相关阅读:
    Could not find package vendor/name in a version matching v-Number 是坑!
    Magento 2 Error: A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later.
    七牛Qshell 常用命令打印
    VBA
    XUGUO-书呆子-搜索书箱
    Magento2 API 服务合同设计模式 依赖注入 介绍
    Magento2 Service contracts 服务合同
    Magento2自定义命令
    在Magento 2中创建管理员菜单
    Routing 为 Magento 2 一个重要的部分,本文介绍基本应用
  • 原文地址:https://www.cnblogs.com/kaigexuetang/p/9665239.html
Copyright © 2011-2022 走看看