动态数组实现

参考博客: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 }
View Code

 

猜你喜欢

转载自www.cnblogs.com/szzla/p/12726182.html