参考博客:https://juejin.im/post/5df740526fb9a0164423d976
1.MyList
1 package myList; 2 import java.util.Iterator; 3 4 public interface MyList<T> extends Iterator<T>{ 5 void add(T element); 6 void delete(T element); 7 void delete(int index); 8 void updata(int index,T newElement); 9 boolean contains(T target); 10 int indexOf(T element); 11 T at(int index); 12 13 }
View Code
2.MyArrayList
1 package myList; 2 3 import java.util.Arrays; 4 5 public class MyArrayList<T> implements MyList<T> { 6 private T[] elements; 7 private int size=0; 8 private int capacity=10; 9 10 public MyArrayList(int capacity) { 11 this.capacity = capacity; 12 elements=(T[])new Object[capacity]; 13 } 14 public MyArrayList(){ 15 elements=(T[])new Object[capacity]; 16 } 17 @Override 18 public void add(T element) { 19 if(size==capacity){ 20 capacity*=2; 21 T[] newarr=(T[])new Object[capacity]; 22 for(int i=0;i<size;i++){ 23 newarr[i]=elements[i]; 24 } 25 elements=newarr; 26 } 27 elements[size++]=element; 28 } 29 30 31 32 @Override 33 public void delete(T element) { 34 int x=indexOf(element); 35 delete(x); 36 } 37 38 @Override 39 public void delete(int index) { 40 if(index>=0){ 41 for(int i=index;i<size-1;i++){ 42 elements[i]=elements[i+1]; 43 } 44 elements[size-1]=null; 45 size--; 46 } 47 } 48 49 @Override 50 public void updata(int index, T newElement) { 51 elements[index]=newElement; 52 } 53 54 @Override 55 public boolean contains(T target) { 56 return indexOf(target)>=0; 57 } 58 59 @Override 60 public int indexOf(T element) { 61 for (int i = 0; i <size; i++) { 62 if(elements[i]==element) 63 return i; 64 } 65 return -1; 66 } 67 @Override 68 public T at(int index){ 69 return elements[index]; 70 } 71 72 @Override 73 public String toString() { 74 75 76 StringBuilder sb=new StringBuilder("["); 77 for(int i=0;i<size;i++){ 78 sb.append(elements[i]+(i==size-1?"":",")); 79 } 80 sb.append("]"); 81 return sb.toString(); 82 } 83 @Override 84 public boolean hasNext() { 85 return false; 86 } 87 88 @Override 89 public T next() { 90 return null; 91 } 92 93 }
原文:https://www.cnblogs.com/szzla/p/12726182.html