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

网站开发怎么连接sqlserverphpcms网站开发

网站开发怎么连接sqlserver,phpcms网站开发,网络营销运营公司,备案查询网数组定义: 在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识。 因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引计算出来。 性…

数组定义:

 在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识。

因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引计算出来。

性能空间占用

java中所有对象的大小都是8字节的整数倍,不足的要用对齐字节补足

随机访问

即根据索引查找元素,时间复杂度是O(1)

动态数组
 private int size; // 逻辑大小private int capacity=8; // 容量private int[] array=new int[capacity];
插入
//向最后的位置[size]添加元素public void addLast(int element){array[size]=element;size++;}
//向[0....size]位置添加元素public void add(int index,int element){//未考虑数组扩容问题if(size>=0&&index<size) {//进行一个拷贝System.arraycopy(array, index, array, index + 1, size - index);array[index] = element;size++;} else if(index==size){//addLastarray[index]=element;size++;}}

public void add1(int index,int element){if(size >= 0 && index < size){System.arraycopy(array,index,array,index+1,size-index);}array[index]=element;size++;}
查询和遍历元素
//查询元素public int get(int index){//[0....size]return array[index];}//打印每个元素public void foreach(){for (int i=0;i<size;i++){System.out.println(array[i]);}}//函数式接口//遍历方法1,consumer接口 遍历执行的操作,每个元素入参public void foreach1(Consumer<Integer> consumer){for(int i=0;i<size;i++){consumer.accept(array[i]);}}//Iterator 是个接口,要有实现类//迭代器遍历@Overridepublic Iterator<Integer> iterator() {//java里叫匿名内部类return new Iterator<Integer>() {int i=0;@Overridepublic boolean hasNext() {//有没有下一个严肃return i<size;}@Overridepublic Integer next() {//返回当前元素,并移动到下一个元素return array[i++];}};}public IntStream stream(){//IntStream 传的数字不仅有有效数字,还有无效的 eg:1,2,3,4,0,0,0,0return IntStream.of(Arrays.copyOfRange(array,0,size));}
  public static void main(String[] args) {System.out.println("Hello world!");DynamicArray dynamicArray = new DynamicArray();dynamicArray.addLast(1);dynamicArray.addLast(2);dynamicArray.addLast(3);dynamicArray.addLast(4);dynamicArray.add(2,5);for(int i=0;i<5;i++){System.out.println(dynamicArray.get(i));}//迭代器遍历for(Integer element:dynamicArray){//hasnext()、next()方法System.out.println(element);}}
删除
 public int remove(int index){  //[0...size]int removed=array[index];if(index<size-1) {//java数组中移动元素的方法System.arraycopy(array, index + 1, array, index, size - index - 1);}size--;return removed;}

对比数据是否一致(断言)

assertEquals(3,removed);

assertIterable(List.of(1,2,4,5),dynamicArray);

容量不够,先扩容
   private void checkAndGrow() {//容量检查if(size==0){array=new int[capacity];}if(size==capacity){//进行扩容,1.5   1.618   2capacity+=capacity>>1;int [] newArray=new int[capacity];System.arraycopy(array,0,newArray,0,size);array=newArray;}}

插入或删除性能

头部位置,时间复杂度是O(n)

中间位置,时间复杂度是O(n)

尾部位置,时间复杂度是O(1)

全部代码

package org.example;import java.util.Iterator;
import java.util.Arrays;
import java.util.function.Consumer;
import java.util.stream.IntStream;//动态数组
public class DynamicArray implements Iterable<Integer>{private int size; // 逻辑大小private int capacity=8; // 容量// private int[] array=new int[capacity];private int[] array={};//向最后的位置[size]添加元素public void addLast(int element){array[size]=element;size++;}//向[0....size]位置添加元素public void add(int index,int element){checkAndGrow();//未考虑数组扩容问题if(size>=0&&index<size) {//进行一个拷贝System.arraycopy(array, index, array, index + 1, size - index);array[index] = element;size++;} else if(index==size){//addLastarray[index]=element;size++;}}private void checkAndGrow() {//容量检查if(size==0){array=new int[capacity];}if(size==capacity){//进行扩容,1.5   1.618   2capacity+=capacity>>1;int [] newArray=new int[capacity];System.arraycopy(array,0,newArray,0,size);array=newArray;}}public void add1(int index,int element){if(size >= 0 && index < size){System.arraycopy(array,index,array,index+1,size-index);}array[index]=element;size++;}//查询元素public int get(int index){//[0....size]return array[index];}//打印每个元素public void foreach(){for (int i=0;i<size;i++){System.out.println(array[i]);}}//函数式接口//遍历方法1,consumer接口 遍历执行的操作,每个元素入参public void foreach1(Consumer<Integer> consumer){for(int i=0;i<size;i++){consumer.accept(array[i]);}}//Iterator 是个接口,要有实现类//迭代器遍历@Overridepublic Iterator<Integer> iterator() {//java里叫匿名内部类return new Iterator<Integer>() {int i=0;@Overridepublic boolean hasNext() {//有没有下一个严肃return i<size;}@Overridepublic Integer next() {//返回当前元素,并移动到下一个元素return array[i++];}};}public IntStream stream(){//IntStream 传的数字不仅有有效数字,还有无效的 eg:1,2,3,4,0,0,0,0return IntStream.of(Arrays.copyOfRange(array,0,size));}public int remove(int index){  //[0...size]int removed=array[index];if(index<size-1) {//java数组中移动元素的方法System.arraycopy(array, index + 1, array, index, size - index - 1);}size--;return removed;}}
二维数组

从行开始遍历比从列开始遍历更快。

局部性原理:(空间方面)

  cpu读取内存(速度慢)数据后,会将其放入高速缓存(速度快)中当中,如果后来的计算机再用到此数据,在缓存中能读到的话,就不必读内存了。

  缓存的最小存储单位是缓存行,一般是64bytes,一次读的数据少了不划算,因此最少读64bytes填满一个缓存行,因此读入某一个数据时也会读取其临近的数据,这就是所谓的空间局部性。

http://www.15wanjia.com/news/193287.html

相关文章:

  • 苏州注册公司多少钱seo在线推广
  • 物流公司网站建设投资网站排行
  • 南宁网络企业网站wordpress 还有什么
  • 佛山网站seo公司关键词优化怎样做
  • 怎么免费自己做推广广东专业网站优化制作公司
  • 一个空间怎么放多个网站吗网站兼容怎么调
  • 一家专门做动漫的网站网站制作的要点和步骤详解
  • 在线建站网页制作网站建设平台江西赣建建设监理网站
  • 免费资料网站网址下载坪山网站建设服务
  • 旅游网站哪个做的好网站建设douyanet
  • 建立网站需要多少钱稻挺湖南岚鸿有名手机app制作公司郑州
  • 网站正在建设中动画做织梦网站之前要新建数据库吗
  • 温江做网站哪家好wordpress空间安装教程视频
  • 互联网信息服务 网站备案中小型企业网站优化推广
  • 网站设计制作教程苏州网站建设网络推广
  • 网站根目录多出一.php网站建设设计价格
  • 长沙做网站备案阿里巴巴官网网站
  • 苏州做网站需要多少钱湖南网站建设
  • 临沂建设局网站农民工保证金商标设计logo免费软件
  • 网站建设需求计划书网站开发费属于无形资产那部分
  • 商标注册查询官网中国商标网移动端优化
  • 做视频网站赚做视频网站赚长沙旅游景点排名前十名
  • wordpress 自定义 文章形式重庆高端seo
  • 百度网站开发龙海市邦策网站建设平台
  • 什么网站做美式软装设计方案网站建设医药
  • 株洲市建设局官方网站wordpress加载时间
  • 做网站有地区差异吗网站建设结构方案
  • 恩施建设银行网站做网站后有人抢注关键词
  • 湖北城市建设职业技术学院官方网站西安网站建设哪家
  • 网站顶部导航渠道网官网