侧边栏壁纸
博主昵称

AVA基础学习,学习ArrayList,自己尝试写一下方法,加深理解,帮助记忆。

  1package com.ezxmt.collection;
  2
  3import com.ezxmt.hook.Cat;
  4import com.ezxmt.hook.Dog;
  5
  6import java.util.Date;
  7
  8/**
  9 * 学习ArrayList,
 10 */
 11public class TestArrayList {
 12
 13    //创建obj数组,用于内部存放数据
 14    private Object[] elementDate;
 15
 16    //大小
 17    private int size;
 18
 19    //构造方法
 20    public TestArrayList(){
 21        //不指定大小时默认给10
 22        this(10);
 23    }
 24
 25    public TestArrayList(int initSize){
 26        if(initSize<0){
 27            //数组长度小于0,抛出异常
 28            try {
 29                throw new Exception("数组长度小于0");
 30            } catch (Exception e) {
 31                throw new RuntimeException(e);
 32            }
 33        }
 34        //初始化数组
 35        elementDate = new Object[initSize];
 36
 37    }
 38
 39    public void add(Object obj){
 40        //判断当前数组是否需要扩容
 41        if(size>=elementDate.length){
 42            Object[] newArray = new Object[size*2+1];
 43            //拷贝数组
 44            System.arraycopy(elementDate,0,newArray,0,elementDate.length);
 45            //或者for循环读取
 46           /*for (int i = 0; i < elementDate.length; i++) {
 47                newArray[i] = elementDate[i];
 48            }*/
 49            elementDate = newArray;
 50        }
 51
 52        //两种写法
 53        /* 第一种写法
 54        elementDate[size] = obj;
 55        size++;
 56         */
 57        //第二种写法,先处理,后自增
 58        elementDate[size++]=obj;
 59    }
 60
 61    //根据下标获取数组对应的元素
 62    public Object get(int index){
 63        //首先判断下标是否在数组长度范围内
 64        if(index<0 || index>=size){
 65            try {
 66                throw new Exception("数组下标输入错误");
 67            } catch (Exception e) {
 68                throw new RuntimeException(e);
 69            }
 70        }
 71        //根据下标获取对象并返回
 72        return elementDate[index];
 73    }
 74
 75    public int getSize() {
 76        return size;
 77    }
 78
 79    //移除指定下标的对象
 80    public void remove(int index){
 81
 82    }
 83
 84    public static void main(String[] args) {
 85        TestArrayList t = new TestArrayList();
 86        t.add(123);
 87        t.add("912hj98g2");
 88        t.add(new Dog());
 89        t.add(new Cat());
 90        t.add(new Date());
 91        t.add("abc");
 92        t.add("bcd");
 93        t.add("cdf");
 94        t.add("alskdjf");
 95        t.add(new Dog());
 96        t.add("ddd");
 97        t.add("bbb");
 98
 99        System.out.println(t.getSize());
100        System.out.println(t.get(12));
101    }
102}
博主栏壁纸
博主头像 爱喝酸奶的我

一个随缘记录学习生活并取悦自己的博客小站

31 文章数
10 评论量
标签云