动态数组的实现
package com.softeem.oop1;
import com.softeem.example.Product;
//自定义动态数组
public class MyArrayList {
private Product[] data;//存储数据的源数组
private int index;//当前索引位置
public MyArrayList(){
this(3);
}
public MyArrayList(int size){
data = new Product[size];
}
public void add(Product p)
{
//检查容量
if(index >= data.length){
//扩充容量
incrementCapacity();
}
data[index++] = p;//10
}
//容量扩充
private void incrementCapacity()
{
//创建新数组
Product[] temp = new Product[data.length + data.length / 2];
//数组拷贝
System.arraycopy(data, 0, temp, 0, data.length);
//
data = temp;
}
//根据索引获取数组中的一个元素
public Product get(int i)
{
return data[i];
}
public int size()
{
return index;
}
public static void main(String[] args) {
MyArrayList list = new MyArrayList();
Product p1 = new Product(1, "统一老谭酸菜牛肉面1", "食品", 5, 30);
Product p2 = new Product(2, "统一老谭酸菜牛肉面2", "食品", 5, 30);
Product p3 = new Product(3, "统一老谭酸菜牛肉面3", "食品", 5, 30);
Product p4 = new Product(4, "统一老谭酸菜牛肉面4", "食品", 5, 30);
Product p5 = new Product(5, "统一老谭酸菜牛肉面5", "食品", 5, 30);
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
System.out.println(list.size());
}
}