当前位置: 首页 > news >正文

晋城市网站建设_网站建设公司_加载速度优化_seo优化

鹿泉专业网站建设,上海公司排名大全,微信被不明android账号登录,拼多多网页设计尺寸前言 上次面试时#xff0c;手写ArrayList竟然翻车#xff0c;忘了里面的扩容与缩容的条件#xff0c;再次实现一次#xff0c;加深印象 源码讲了什么 实现了List列表和RandomAccess随机访问接口List具有增删改查功能#xff0c;RandomAccess支持下标访问内部是一个扩容…前言 上次面试时手写ArrayList竟然翻车忘了里面的扩容与缩容的条件再次实现一次加深印象 源码讲了什么 实现了List列表和RandomAccess随机访问接口List具有增删改查功能RandomAccess支持下标访问内部是一个扩容数组默认大小是10sizesizesize/2 如何实现 实现List的addremovesetget实现RandomAccess的下标访问实现集合的基本sizeisEmptytoString实现扩容grow每一增到1.5倍sizesizesize/2缩容方法需要手动调用内部不会再remove自动调用使数组容量等于当前元素个数arrayArray(size)size元素个数array.size时容量 fun main() {val list MyArrayList()list.add(1)list.add(2)list.add(3)list.add(0, 2)list.set(list.size(), 7)println(list) }class MyArrayList {// 方便扩展默认是10个每次扩容sizesizesize2private var array Array(10) { 0 }// 当前大小private var size 0// 添加fun add(value: Int) {if (size array.size) {grow(size 1)}array[size] value}// 中间插入按下标fun add(index: Int, value: Int): Boolean {if (size !in 0..size) {return false}if (size array.size) {grow(size 1)}for (i in size downTo index 1) {array[i] array[i - 1]}array[index] valuesizereturn true}// 删除按值按下标删除已经废弃了fun remove(value: Int): Boolean {var index -1for (i in 0 until size) {if (array[i] value) {index ibreak}}if (index -1) {return false}for (i in index 1 until size) {array[i - 1] array[i]}size--return true}// 改fun set(index: Int, value: Int): Boolean {if (index !in 0 until size) {return false}array[index] valuereturn true}// 查fun get(index: Int) if (index !in 0 until size) -1 else array[index]// toStringoverride fun toString() StringBuilder().apply {append([)for (i in 0 until size) {append(if (i 0) array[i] else , ${array[i]})}append(])}.toString()// 扩容添加大量元素时会使用minCapacityprivate fun grow(minCapacity: Int) {var newCapacity Math.max(minCapacity, array.size array.size / 2)val newArray ArrayInt(newCapacity) { 0 }for (i in 0 until size) {newArray[i] array[i]}array newArray}// 缩容方法不用不写// 用来判断的emptyfun isEmpty() size 0fun isNotEmpty() size 0fun size() size }
http://www.lebaoying.cn/news/80422.html

相关文章:

  • 网站的ftp账号和密码是什么做网站要多长时间
  • 免费的小程序怎么赚钱网站关键词seo推广公司哪家好
  • 群晖WordPress绑定域名深圳谷歌优化seo
  • 基于jsp的网站开发系部网站建设创新点
  • 沈阳企业网站建设公司wordpress用户分组管理
  • 会议室效果图制作企业网站优化关键词
  • 莆田网站建设网络品牌营销
  • 永州祁阳网站建设专门做狗猫配套网站有什么意思
  • 怎么用ps做网站前台美工网站上怎么做支付接口
  • 佛山外贸网站建设公司网站留言短信通知
  • 成都网站设计得多少钱网站导航是做链接赚钱么
  • 哪个网站做外贸生意网页微信版能破解通讯录吗
  • 苏州注册公司多少钱象山seo的优化
  • 一号网站建设文化建设的本质是什么
  • 做任务给钱的网站跨境电商产品开发流程
  • 公司网站购物平台建设网站建设项目经理招聘
  • 东莞seo建站php商城网站开发报告
  • 做网站按页面收费2022网站seo
  • 外贸网站推广移动端seo关键词优化
  • 网站快速建设视频还有用的网站
  • 免费私人网站友情链接举例
  • 深圳正规网站建设常平网页设计
  • wordpress仿站教程百度云如何做阿里巴巴企业网站
  • 阿里云上如何用iis做网站济南seo网站推广公司
  • 济南网站制作设计公司wordpress 主题和搭建
  • 商城网站建设资讯做企业网站代码那种好
  • 网络课程系统网站建设费用人才交流网站建设与设计
  • 上海网站建设找哪家公司wordpress 读取excel
  • 医疗网站跳出率wordpress上的博客
  • 怎样吧自己做的网站发布做任务悬赏网站