【129天】尚学堂高琪Java300集视频精华笔记(59)

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【129天】尚学堂高琪Java300集视频精华笔记(59)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

第59集:数组模拟ArrayList容器的底层实现JDK源码分析ArrayList

本节课高老师带着我们模拟了一遍如何从0开始写一个类。

package com.test059;  public class MyArrayList {     private Object[] value;     private int size;     public MyArrayList(){ //        value = new Object[16];         this(10);     }          public MyArrayList(int size){         if(size<0){             //抛异常         }         value = new Object[size];     }          public int indexOf(Object obj){         if(obj==null){             return -1;         } else {             for(int i = 0;i<value.length;i++){                 if(obj==value[i]){                     return i;//找到就结束循环了                 }                                  }             return -1;         }     }          public int lastIndexOf(Object obj){         if(obj == null){             return -1;         } else {             for(int i = value.length - 1;i >= 0; i--){                 if(obj == value[i]){                     return i;//找到就结束循环                 }             }         }         return -1;     }               public void add(Object obj){         value[size] = obj;         size++;         if(size >= value.length){             //装不下,需要扩容             int newCapacity = value.length*2;             Object[] newList = new Object[newCapacity];// 创建新对象             //将老对象的内容复制到新的对象。             for(int i = 0;i<value.length;i++){                 newList[i] = value[i];             }             value = newList;         }     }          public int size(){         return size;     }                        public Object get(int index){                  return value[index];     }          public Object set(int index,Object object){         rangeCheck(index);         Object old = value[index];         value[index] = object;         return old;     }          public void rangeCheck(int index){         if(index<0||index>size-1){//[0,size-1]             try{                 throw new Exception();             } catch (Exception e) {                 e.printStackTrace();             }         }     }          public int getSize() {         return size;     }          public static void main(String[] args){         MyArrayList list = new MyArrayList();         list.add("aaa");         list.add(new Human("王涛"));         list.add("bbb"); //        for(int i = 0;i < 16;i++){ //            System.out.println(list.value[i]); //        }                           Human h = (Human)list.value[1];//         System.out.println(h.getName());         //System.out.println(((Human)list.value[1]).getName());              }      }    

脚本宝典总结

以上是脚本宝典为你收集整理的【129天】尚学堂高琪Java300集视频精华笔记(59)全部内容,希望文章能够帮你解决【129天】尚学堂高琪Java300集视频精华笔记(59)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。