2025年js数组方法改变原数组(js数组方法改变原数组的大小)

js数组方法改变原数组(js数组方法改变原数组的大小)p 地址连续 p 直接通过下标获取数组里的内容 数组的下标从 0 开始 默认值 int 0 char 空 false 0 0 string null 用 java 写数组 定义 输出 数组的长度不可变 可变数组 List ArrayList new ArrayList lt gt 数组扩容 数组长度不够时

大家好,我是讯享网,很高兴认识大家。



 <p>地址连续</p> 

讯享网

直接通过下标获取数组里的内容:数组的下标从0开始

默认值: int 0 char 空 false 0.0 string null

用 java 写数组(定义、输出):


讯享网

数组的长度不可变

可变数组 List ArrayList : new ArrayList&lt;&gt;();

数组扩容:

数组长度不够时,重新创建有个比原数组更长的数组brr,把原数组arr当中的数据全部复制到新数组当中

arr指向brr ,arr原来指向的就会被系统回收掉(Java有自动回收机制)

public class Test { public static void main(String[] args) { //创建数组 int[] arr = {5,20,55}; int[] brr = new int[arr.length+1]; for(int i = 0;i&lt;arr.length;i++) { brr[i] = arr[i]; } arr = brr; arr[3] = 50; System.out.println(Arrays.toString(arr)); } }

自建ArrayList

  • ArrayList.java:

package 数组;

public class ArrayList {

//全局变量 int size = 0;//记录有效数据的个数 int capacity = 10;//数组容量 double factor = 1.5;//因数1.5 int[] arr = new int[capacity];

/* int[] arr;

int size;//记录有效数据的个数

int capacity;//数组容量

double factor;//因数1.5

//构造方法 public ArrayList() { size = 0; capacity = 10; factor = 1.5; arr = new int[capacity]; }*/ public void add(int element) { if(size==capacity) { //数组满了,满了扩容 //强制转换成int类型的数据 capacity = (int) (capacity*factor); int[] brr = new int[capacity]; for(int i=0;i&lt;arr.length;i++) { brr[i] = arr[i]; } arr = brr; } //没有满 arr[size] = element; size++; } //打印 public String toString() { String res = “[”; //为了使打印出有效数据,后面一些默认数据0之类的不要 for(int i=0;i&lt;size;i++) { //最后一个数据 if(i==size-1) { res+=arr[i]; } else { res+=arr[i]+“,”; } } res+=“]”; return res; }

}

  • 模拟ArrayList.java:

package 数组;

public class 模拟ArrayList {

public static void main(String[] args) { //new一个对象出来,list是对象 ArrayList list = new ArrayList(); list.add(1); list.add(3); list.add(3); list.add(4); list.add(5); list.add(6); list.add(6); list.add(2); list.add(1); list.add(9); list.add(6); list.add(3); //有自己的toString方法,调用自己的 System.out.println(list.toString()); //所有打印默认调用的都是toString方法(自己的) System.out.println(list); }

}

数组的增删改查

最后位置插入:

插入之前判断数组当中有没有位置:判断size和数组的长度是否相等

  • 不相等则插入,说明有位置

size刚好就是需要插入的位置,有一个数据的话,size=1,插入数据的话应该插入下表为1的位置

arr[size] = num;

size++

  • 相等则满了,需要扩容

指定位置插入:

1、判断插入的位置是否合法【0,size】

2、判断数组当中有没有位置:判断size和数组的长度是否相等,相等则满了,需要扩容

3、eg:在下标为2的位置插入数据

把原数据想要插入的位置及其之后的数据,按照从后往前的顺序 依次向后移动一位

4、数据移动完成之后,原来的数据不怕被覆盖掉,写入数据

size++

有序数组的插入:

1、判断数组当中有没有位置:判断size和数组的长度是否相等,相等则满了,需要扩容

2、记录第一个比目标数值大的数据所在的位置

3、把原数据想要插入的位置及其之后的数据,按照从后往前的顺序 依次向后移动一位

4、数据移动完成之后,原来的数据不怕被覆盖掉,写入数据

size++

删除:

把数据覆盖掉,size-1

删除第一个符合条件的数据:

1、从前往后遍历,找到要删除的元素,记录其所在的位置 position

2、position之后的数据 按照从前往后的数据 依次向前覆盖

size–

3、结束,不再查找

eg:删除100

删除所有符合条件的数据:

1、从后往前遍历,找到要删除的元素,记录其所在的位置 position

2、position之后的数据 按照从前往后的数据 依次向前覆盖

size–

3、继续向前查找,直到遍历完全部的数据

直接拿下标进行修改arr[2]=100

小讯
上一篇 2025-05-09 07:55
下一篇 2025-04-15 18:40

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/206365.html