package imp indexof print gho n) get ech JD

 

  1 package cn.xlf.myarraylist;
  2 
  3 import java.util.ArrayList;
  4 
  5 /**
  6  * 模擬實現 JDK中提供的ArrayList類
  7  * @author ZBG34854
  8  *
  9  */
 10 public class MyArrayList {
 11      /**
 12      * The value is used for object storage.
 13      */
 14     private Object[] value;
 15 
 16     /**
 17      * The count is the number of object used.
 18      */
 19     private int size;
 20     //初始化
 21     public MyArrayList(){
 22         this(10); // 用一個構造器 調另一個構造器
 23         //value = new Object[10];
 24     }
 25     public MyArrayList(int size){
 26         value = new Object[size];
 27     }
 28     
 29     public int size(){//返回 數組的 元素個數
 30         return size;
 31     }
 32     //賦值
 33     public void add(Object obj){
 34         value[size] = obj;
 35         size++;
 36         //數組自動擴容
 37         if(size >= value.length){
 38             //擴容
 39             int newCapacity = value.length * 2;
 40             Object[] newList = new Object[newCapacity];
 41             for(int i = 0; i < value.length; i++){
 42                 newList[i] = value[i];
 43             }
 44             
 45             value = newList;
 46         }
 47     }
 48     
 49     public Object get(int index){
 50         rangeCheck(index);
 51         return value[index];
 52     }
 53     
 54     public int indexOf(Object obj){
 55         if(obj == null ){
 56             return -1;
 57         }else{
 58             for(int i = 0;i<value.length;i++){
 59                 if(obj==value[i]){
 60                     return i;
 61                 }
 62             }
 63             return -1;
 64         }
 65     }
 66     //倒著按索引求值
 67     public int lastIndexOf(Object obj){
 68         if(obj == null ){
 69             return -1;
 70         }else{
 71             for(int i = value.length-1;i>=0;i--){
 72                 if(obj==value[i]){
 73                     return i;
 74                 }
 75             }
 76             return -1;
 77         }
 78     }
 79     
 80     
 81     public void rangeCheck(int index){
 82         if(index < 0 || index > size - 1){
 83             try{
 84                 throw new Exception();//手動拋出異常
 85             }catch(Exception e){
 86                 e.printStackTrace();
 87             }
 88         }
 89     }
 90     
 91     public Object set(int index, Object object){
 92         rangeCheck( index);
 93         Object old = value[index];
 94         value[index] = object;
 95         return old;
 96     }
 97     
 98     public static void main(String[] args) {
 99         MyArrayList list = new MyArrayList(2);
100         list.add("aaa");
101         list.add(new Human("ghost"));
102         list.add("ddddd");
103         list.add("ddddd");
104         list.add("ddddd");
105         list.add("ddddd");
106         list.add("ddddd");
107         ArrayList list2;
108         
109         Human h = (Human)list.get(1);
110         System.out.println(h.getName());
111         
112         System.out.println(list.get(0));
113         
114         System.out.println(list.get(2));
115         
116         System.out.println(list.size());
117     }
118     
119     
120     
121 
122 }

HUMAN 方法

package cn.xlf.myarraylist;

public class Human {
    
    private String name;

    public Human(String name) {
        super();
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    

}

技術分享圖片

package cn.xlf.myarraylist;
import java.util.ArrayList;
/** * 模擬實現 JDK中提供的ArrayList類 * @author ZBG34854 * */public class MyArrayList { /** * The value is used for object storage. */ private Object[] value;
/** * The count is the number of object used. */ private int size; //初始化 public MyArrayList(){ this(10); // 用一個構造器 調另一個構造器 //value = new Object[10]; } public MyArrayList(int size){ value = new Object[size]; } public int size(){ return size; } //賦值 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 Object get(int index){ rangeCheck(index); return value[index]; } 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 rangeCheck(int index){ if(index < 0 || index > size - 1){ try{ throw new Exception();//手動拋出異常 }catch(Exception e){ e.printStackTrace(); } } } public Object set(int index, Object object){ rangeCheck( index); Object old = value[index]; value[index] = object; return old; } public static void main(String[] args) {MyArrayList list = new MyArrayList(2);list.add("aaa");list.add(new Human("ghost"));list.add("ddddd");list.add("ddddd");list.add("ddddd");list.add("ddddd");list.add("ddddd");ArrayList list2;Human h = (Human)list.get(1);System.out.println(h.getName());System.out.println(list.get(0));System.out.println(list.get(2));System.out.println(list.size());}
}

手動實現 容器