Java如何自定义一个变长数组


这篇文章主要介绍“Java如何自定义一个变长数组”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何自定义一个变长数组”文章能帮助大家解决问题。主要功能点:新建时可以指定容量大小,不指定时使用默认容量大小。向数组中追加新元素,当超过容量时应该自动扩容。向数组中指定位置添加新元素,需要考虑指定的下标是否越界,同样也需要考虑扩容操作。删除末尾的元素,需要考虑缩小容量。删除指定位置元素,需要考虑指定的下标是否越界,同样也需要考虑缩小容量。修改特定位置的元素,需要考虑指定的下标是否越界。以时间复杂度为O ( 1 ) O(1)O(1)获取任意位置的元素,需要考虑指定的下标是否越界。主要注意点:扩容: 这里扩容2倍(ArrayList 是扩容 1.5 倍),扩容时新建一个2倍容量的新数组,然后将旧数组中的元素按顺序拷贝到新数组。缩容: 当数组中的元素个数 指定位置添加: 需要先将指定位置及后面所有的元素都向后移动一位,将指定位置空出来然后再插入。指定位置删除: 先将制定位置删除,然后将后面的所有元素都向前移动一位。容量大小: 需要指定容量的最大值,避免OOM的发生。最小值可以指定也可以不指定。由执行结果可知:初始化后默认容量为10。添加元素超过10个后会自动扩容。删除一个元素后,size会减1,后面元素会自动向前移动一位。插入一个新元素后,size会加1,后续元素后移一位。删除到只有0.25 * 容量个元素后,会自动缩小容量。关于“Java如何自定义一个变长数组”的内容就介绍到这里了,感谢大家的阅读。如果想了解免费云主机域名更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: go语言的复数有什么作用

这篇“go语言的复数有什么作用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言的复数有什么作用”文章吧。 在go语言中,复数主要用于科学计…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/03 12:47
下一篇 03/03 12:49

相关推荐