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();
}
}
2.充满回忆的一行代码