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

网站内容策划方案龙岗网站的建设

网站内容策划方案,龙岗网站的建设,百度首页网站推广多少钱一年,安徽网站建设 网新写在前面 看下数组。 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/280902/

相关文章:

  • 广西工程建设质量安全管理协会网站兰州做网站优化
  • 南京网站如何制作重庆在线直播
  • 惠州网站模板建站广州越秀公司网站建设
  • 专门做衣服特卖的网站工商公示系统查询入口
  • 做网站需要什么素材wordpress 安装 windows
  • 营销型外贸网站建设云南住房和建设厅网站首页
  • 网站备案核验号网站建设有什么需求
  • 课程网站建设规划互联网网站备案表
  • 网站布局框架wordpress视频站插件
  • wordpress首页评论优化大师电脑版官网
  • 做化妆品网站的原因user post wordpress
  • 自己建网站数据怎么做制作网页无法铺平
  • 泰州网站制作维护网络营销学院
  • 做窗帘网站班级网站html代码
  • 网站广告代理如何做织梦网站怎样上传到ftp
  • 用ps制作网站首页如何做环保管家网站
  • 精通网站建设电子档有哪些网站开发技术
  • 优化核心系列网站wordpress多单页
  • wordpress 加相关文章台州seo服务
  • 西城专业网站建设公司电影网站怎么做流量
  • 想做个网站怎么做响应式网站 教程
  • 东莞 骏域网站建设城乡建设部网站混凝土7天强度
  • 公司做网站域名归谁竞价推广软件
  • 公司建站有哪些优势网站最新点击量排名
  • 官方网站建设公司排名网站发的文章如何优化
  • 求职网站建设做庭院景观的那个网站推广好
  • dede做双语网站网络广告公司
  • 免费文件外链网站潍坊建站公司
  • 做的精美的门户网站推荐手机访问网站自动跳转
  • 网站托管是什么wordpress 作者名称