Skip to content

Commit 64bae7c

Browse files
committed
arraylist
1 parent 54db23e commit 64bae7c

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package com.coding.basic;
2+
3+
import java.util.Arrays;
4+
5+
public class ArrayList implements List {
6+
7+
private int size = 0;
8+
9+
private Object[] elementData = new Object[10];
10+
11+
private int increaseSize = 3;
12+
private void increaseArray() {
13+
Object[] newData = Arrays.copyOf(elementData, elementData.length + increaseSize);
14+
elementData = newData;
15+
}
16+
public void add(Object o){
17+
if (size == elementData.length) {
18+
increaseArray();
19+
elementData[size++] = o;
20+
} else {
21+
elementData[size++] = o;
22+
}
23+
}
24+
public void add(int index, Object o){
25+
if (index < 0 || index > size) {
26+
System.out.println("错误提示:index > size || index < 0");
27+
return;
28+
}
29+
Object temp;
30+
for (int i = index; i < size; i++) {
31+
temp = elementData[i];
32+
elementData[i] = o;
33+
o = temp;
34+
}
35+
elementData[size ++] = o;
36+
}
37+
38+
public Object get(int index){
39+
if (index < 0 || index > size ){
40+
return null;
41+
}
42+
return elementData[index];
43+
}
44+
45+
public Object remove(int index){
46+
if (index < 0 || index > size ){
47+
return null;
48+
}
49+
Object result = elementData[index];
50+
for (int i = index; i < size-1; i++) {
51+
elementData[i] = elementData[i + 1];
52+
}
53+
elementData[size-1] = null;
54+
size --;
55+
return result;
56+
}
57+
58+
public int size(){
59+
return size;
60+
}
61+
62+
public Iterator iterator(){
63+
return new Iterator() {
64+
private int cusor = 0;
65+
@Override
66+
public Object next() {
67+
if (!hasNext()) {
68+
System.out.println("next: !hasNext");
69+
return null;
70+
}
71+
return elementData[cusor ++];
72+
}
73+
@Override
74+
public boolean hasNext() {
75+
return cusor < size;
76+
}
77+
};
78+
}
79+
}

0 commit comments

Comments
 (0)