0
点赞
收藏
分享

微信扫一扫

003.数组扩容

卿卿如梦 2022-07-15 阅读 112

1.代码

package com.suanfa.demo;

public class A {
private int[] data;
private int length = 0;
int j = 0;

public A() {
data = new int[5];
}

//插入元素
public void insert(int x) {
expand();
data[length++] = x;
}

//显示元素
public void show() {
for (int i = 0; i < length; i++) {
System.out.print(data[i] + "****");
}
System.out.println();
}

//对元素扩容
public void expand() {
//todo 完成数组的扩容代码
if (length >= data.length / 2) {
j++;
int[] temp = data;
data = new int[data.length * 2];
/**
* 遍历时参数的选择
* 1.data.length 会报越界
* 2.temp.length 旧的数组不一定会装满,没必要去遍历后面的元素
*/
for (int i = 0; i < temp.length; i++) {
data[i] = temp[i];
}
System.out.println("数组第"+j+"次扩容");
}
}

}

package com.suanfa.demo;

public class B {
public static void main(String[] args) {
A a = new A();
a.insert(0);
a.insert(1);
a.insert(2);
a.show();
a.insert(3);
a.insert(4);
a.insert(5);
a.show();
a.insert(6);
a.insert(7);
a.insert(8);
a.insert(9);
a.insert(10);
a.insert(11);
a.show();
}
}

003.数组扩容_数组

2.充满回忆的一行代码

003.数组扩容_数组_02

 



举报

相关推荐

0 条评论