美文网首页
JavaSE—集合框架

JavaSE—集合框架

作者: 凯哥学堂 | 来源:发表于2018-09-17 22:08 被阅读12次

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

    集合框架:

    System.arraycopy:

    1.数组对象

    2.从第几个下表开始拷贝

    3.接受的数组对象

    4.从第几个下表开始存放

    5.要拷贝多长

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

    改善集合每次new对象问题,不要每次传进参数都要new对象,所以我们在第一次创建对象数组时长度就为5,如果本次只传4-5个数据的话那就不需要重新new数组。然后创建一个属性index=0,然后objs[index++]=value;后加加,第一个值等于传进来的val;

    问一下现在的数组长度是否能存储当前值,不能存储的话就重新new一个数组,长度是原来数组的1.75倍,新数组创建完成后就拷贝老数组的数据,从老数组的第0个下表,拷贝给新数组,新数组的第0个放,老数组有多长就拷贝多长,拷贝完成后覆盖老数组,让属性指向新数组。

    然后objs[index++]=val;赋值。

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

    size:数组存放数据的长度。反馈出去。

    数组的删除:数组的删除就是覆盖。

    比如我们申请一个数组,数组里面有“A”,“B”,“C”“D”,“E”,“F”,“G”。

    假设我们要删除下标为3里面的数据,就犹如把“E”,“F”,“G”,复制一份粘贴在从 下标3开始的数组内。删除最后一个就直接数组长度减减。

    判断下标是否越界,是越界的话直接抛出越界异常。

    下标没越界的情况下询问它是不是要删除最后一个,是删除最后一个把该下标等于空。数组长度是7的话,减减后就是6,也就是数组对应的下标6,应为数组下标从0开始。(因为java在没有内存地址指向引用的情况下才会回收内存)

    删除第一个的话,就是用System.arrycopy();老数组从下标第i+1个开始拷贝,拷贝给当前自己数组第i个(要删除的位置),拷贝长度是老数组长度减去-i-1的长度。

    测试:移除第一个。

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

    相关文章

      网友评论

          本文标题:JavaSE—集合框架

          本文链接:https://www.haomeiwen.com/subject/ymfjnftx.html