动态数组的实现原理(自定义动态数组)

来源:互联网 发布:淘宝背景音乐怎么修改 编辑:程序博客网 时间:2024/06/05 09:32

动态数组的实现



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());}}



原创粉丝点击