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

北湖区网站建设哪家好doooor设计网app

北湖区网站建设哪家好,doooor设计网app,网站做301重定向的作用,wordpress163邮箱设置写在前面 看下数组。 1:巴拉巴拉 数组是一种线性数据结构,使用连续的内存空间来存储数据,存储的数据要求有相同的数据类型,并且每个元素占用的内存空间相同。获取元素速度非常快,为O(1)常量时间复杂度,所…

写在前面

看下数组。

1:巴拉巴拉

数组是一种线性数据结构,使用连续的内存空间来存储数据,存储的数据要求有相同的数据类型,并且每个元素占用的内存空间相同。获取元素速度非常快,为O(1)常量时间复杂度,所以数组在我们工作直接或者是间接的用到还是比较多的。

2:代码

定义接口:

package com.dahuyou.datastructure.arraylist;public interface List<E> {/*** Appends the specified element to the end of this list (optional* operation).* <p>* 追加元素到尾部!*/boolean add(E e);/*** Removes the element at the specified position in this list (optional* operation).  Shifts any subsequent elements to the left (subtracts one* from their indices).  Returns the element that was removed from the* list.** 删除指定位置的元素**/E remove(int index);/*** Returns the element at the specified position in this list.** 返回指定位置的元素*/E get(int index);}

实现类,这里不贴所有代码了,只看下重要的方法。

  • add
@Override
public boolean add(E e) {// 确保内部容量int minCapacity = size + 1;if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity);}// 判断扩容操作,即将满时扩容,扩容为原来的1.5倍,直接通过oldCapacity + (oldCapacity >> 1)移位操作完成,效率高if (minCapacity - elementData.length > 0) {int oldCapacity = elementData.length;int newCapacity = oldCapacity + (oldCapacity >> 1);if (newCapacity - minCapacity < 0) {newCapacity = minCapacity;}elementData = Arrays.copyOf(elementData, newCapacity);}// 添加元素elementData[size++] = e;return true;
}

这里在两种情况下会进行扩容,第一次插入元素时扩容到10,之后元素满时扩容到原来的1.5倍,这里使用了移位运算,效率更高。

  • remove
@Override
public E remove(int index) {E oldValue = (E) elementData[index];int numMoved = size - index - 1;if (numMoved > 0) {// 从原始数组的某个位置,拷贝到目标对象的某个位置开始后n个元素System.arraycopy(elementData, index + 1, elementData, index, numMoved);}elementData[--size] = null; // clear to let GC do its workreturn oldValue;
}

注意这里删除元素并不是通过一个一个的交换元素来实现的,而是直接通过native方法java.lang.System#arraycopy:

public static native void arraycopy(Object src,  int  srcPos,Object dest, int destPos,int length);

因为是底层直接操作内存,所以效率更高。
测试:

package com.dahuyou.datastructure.arraylist;public class TT {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("01");list.add("02");list.add("03");list.add("04");list.add("05");list.add("06");list.add("07");list.add("08");list.add("09");list.add("10");list.add("11");list.add("12");System.out.println(list);list.remove(9);System.out.println(list);}}

运行:

ArrayList{elementData=[01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, null, null, null], size=12}
ArrayList{elementData=[01, 02, 03, 04, 05, 06, 07, 08, 09, 11, 12, null, null, null, null], size=11}Process finished with exit code 0

写在后面

参考文章列表

http://www.yayakq.cn/news/943057/

相关文章:

  • 网站建设实现功能浙江省一建建设集团网站首页
  • 用手机可以建设一个手机网站吗建宣传网站
  • 江苏广宇建设集团有限公司网站trs网站建设平台
  • 企业网站手机版源码下载wordpress移动端小工具栏
  • 网站后台改wordpress结构化数据
  • 网站建设的探讨与研究北京环球影城小包也要寄存吗
  • 手机端网站开发流程注册一个私人网站
  • 网站添加悬浮二维码龙岗网站建设公司哪家口碑好
  • 怎么在网上做公司网站自己做网站排版
  • 内网门户网站建设高端网站设计官网
  • 域名购买后网站搭建网站设计原则的历史
  • ns解析网站项目营销推广方案
  • 网站建设联系方式网站海外推广建设
  • 南京房地产网站单页网站模板修改
  • 网站后台密码错误wordpress 文章广告
  • 南阳高端网站建设宜春公司做网站
  • 网站页面组成一个公司建设网站
  • 江门企业建站程序象山seo的优化
  • 网站排名分析中国对外贸易网站
  • 中国空间站图片山东机关建设网站道德模范
  • 做微博网站网站做多个页面
  • 网站用户投稿怎么做电子元器件网站建设
  • php响应式网站模板下载网站开发招聘 领英
  • 网站建设推荐网门户网站建设投入
  • 怎样做阿里巴巴网站搜索网站制作教程
  • 厦门网站个人制作seo是什么单位
  • 怎样免费建设网站手机套 东莞网站建设
  • 西安网站制作的公司网站开发模式名词
  • 网站开发 技术难点做网站公司怎么赚钱
  • 宁波网站建设公司名单推荐网站网页策略