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

上海建站费用百度搜索关键词排名查询

上海建站费用,百度搜索关键词排名查询,wordpress识图,装修网线前言 上次面试时,手写ArrayList竟然翻车,忘了里面的扩容与缩容的条件,再次实现一次,加深印象 源码讲了什么 实现了List列表和RandomAccess随机访问接口List具有增删改查功能,RandomAccess支持下标访问内部是一个扩容…

前言

上次面试时,手写ArrayList竟然翻车,忘了里面的扩容与缩容的条件,再次实现一次,加深印象

源码讲了什么

  1. 实现了List列表和RandomAccess随机访问接口
  2. List具有增删改查功能,RandomAccess支持下标访问
  3. 内部是一个扩容数组,默认大小是10,size=size+size/2

如何实现

  1. 实现List的add,remove,set,get
  2. 实现RandomAccess的下标访问
  3. 实现集合的基本size,isEmpty,toString
  4. 实现扩容grow,每一增到1.5倍,size=size+size/2
  5. 缩容方法需要手动调用(内部不会再remove自动调用),使数组容量等于当前元素个数,array=Array(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个,每次扩容size=size+size>>2private 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] = valuesize++return 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 = Array<Int>(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.mnyf.cn/news/46454.html

相关文章:

  • 做俄语网站建设百度的营销方式有哪些
  • 做网站公司无锡搜索引擎优化文献
  • 跨境电商自建站是什么16888精品货源入口
  • 平面设计素材网站排名91永久免费海外地域网名
  • 企业准备做网站的准备工作百度推广投诉热线
  • 网站建设发票税率是多少今日要闻10条
  • 公司网站备案后在百度上多长时间可以搜索到中国企业网络营销现状
  • 免费做网站缅甸新闻最新消息
  • 福州做网站建设百度手机下载安装
  • 网页制作语言百度搜索关键词排名优化推广
  • 专门做试题的网站网站关键词怎么添加
  • 包头网站建设多少钱成都全网推广哪家专业
  • 培训机构做网站宣传淘宝关键词搜索
  • wordpress给分类添加自定义文字苏州百度搜索排名优化
  • pc端网站建设相关查阅资料自己开发网站怎么盈利
  • java一般要学几年seo店铺描述
  • 海量免费素材库seo是什么工作内容
  • 外包做网站哪家好南宁seo团队哪家好
  • 兰州网站建设天津seo招聘
  • 哈尔滨专业做网站推广互联网广告投放公司
  • 上网用哪家公司的比较好舟山seo
  • 建筑网片生产设备佛山网站优化排名推广
  • 青岛网站公司搜索引擎优化目标
  • 跳转网站正在建设中友链网
  • 做爰试看的网站深圳百度推广属于哪家公司
  • 移动web网站开发网络销售平台排名前十
  • 做代购可以在哪些网站上软文推广文章范文
  • 网页源代码怎么调出来谷歌seo最好的公司
  • 北海市建设局网站虎扑体育网体育
  • 沈阳做网站优化哪家好seo排名赚挂机赚钱软件下载