Skip to content

Commit dd5393b

Browse files
authored
Merge pull request onlyliuxin#14 from acd28705/master
完成热身作业,并完成了ArrayList的单元测试
2 parents b5b6fac + 36e2c54 commit dd5393b

File tree

9 files changed

+543
-0
lines changed

9 files changed

+543
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package wiki.liven.code.dataStructures;
2+
3+
import org.junit.Before;
4+
import org.junit.Test;
5+
6+
7+
/**
8+
* Created by leven on 2017/2/26.
9+
*/
10+
public class ArrayListTest {
11+
12+
private ArrayList arrayList;
13+
14+
15+
@Before
16+
public void init(){
17+
arrayList = new ArrayList();
18+
}
19+
20+
21+
@Test
22+
public void add() throws Exception {
23+
arrayList.add("梅子黄时雨");
24+
arrayList.add("行下一首歌");
25+
arrayList.add("AmberTseng");
26+
arrayList.add("梅子黄时雨");
27+
arrayList.add("行下一首歌");
28+
arrayList.add("AmberTseng");
29+
arrayList.add("梅子黄时雨");
30+
arrayList.add("行下一首歌");
31+
arrayList.add("AmberTseng");
32+
arrayList.add("梅子黄时雨");
33+
arrayList.add("行下一首歌");
34+
arrayList.add("AmberTseng");
35+
System.out.println(arrayList.toString());
36+
}
37+
38+
@Test
39+
public void add1() throws Exception {
40+
arrayList.add("梅子黄时雨");
41+
arrayList.add("行下一首歌");
42+
System.out.println(arrayList.size());
43+
arrayList.add(1,"星际游侠");
44+
System.out.println(arrayList.toString());
45+
}
46+
47+
@Test
48+
public void get() throws Exception {
49+
arrayList.add("梅子黄时雨");
50+
arrayList.add("行下一首歌");
51+
arrayList.add("AmberTseng");
52+
arrayList.add("梅子黄时雨");
53+
arrayList.add("行下一首歌");
54+
arrayList.add("AmberTseng");
55+
arrayList.add("梅子黄时雨");
56+
arrayList.add("行下一首歌");
57+
arrayList.add("AmberTseng");
58+
arrayList.add("梅子黄时雨");
59+
arrayList.add("行下一首歌");
60+
arrayList.add("AmberTseng");
61+
System.out.println(arrayList.get(1));
62+
}
63+
64+
@Test
65+
public void remove() throws Exception {
66+
arrayList.add("梅子黄时雨");
67+
arrayList.add("行下一首歌");
68+
System.out.println(arrayList.remove(1));
69+
System.out.println(arrayList.toString());
70+
}
71+
72+
@Test
73+
public void size() throws Exception {
74+
arrayList.add("梅子黄时雨");
75+
arrayList.add("行下一首歌");
76+
arrayList.add("AmberTseng");
77+
arrayList.add("梅子黄时雨");
78+
arrayList.add("行下一首歌");
79+
arrayList.add("AmberTseng");
80+
arrayList.add("梅子黄时雨");
81+
arrayList.add("行下一首歌");
82+
arrayList.add("AmberTseng");
83+
arrayList.add("梅子黄时雨");
84+
arrayList.add("行下一首歌");
85+
arrayList.add("AmberTseng");
86+
System.out.println(arrayList.size());
87+
}
88+
89+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package wiki.liven.code.dataStructures;
2+
3+
import org.junit.Test;
4+
5+
6+
/**
7+
* Created by leven on 2017/2/26.
8+
*/
9+
public class LinkedListTest {
10+
@Test
11+
public void add() throws Exception {
12+
13+
}
14+
15+
@Test
16+
public void add1() throws Exception {
17+
18+
}
19+
20+
@Test
21+
public void get() throws Exception {
22+
23+
}
24+
25+
@Test
26+
public void remove() throws Exception {
27+
28+
}
29+
30+
@Test
31+
public void size() throws Exception {
32+
33+
}
34+
35+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package wiki.liven.code.dataStructures;
2+
3+
import org.junit.Test;
4+
5+
/**
6+
* Created by leven on 2017/2/26.
7+
*/
8+
public class QueueTest {
9+
@Test
10+
public void queueEmpty() throws Exception {
11+
12+
}
13+
14+
@Test
15+
public void enQueue() throws Exception {
16+
17+
}
18+
19+
@Test
20+
public void deQueue() throws Exception {
21+
22+
}
23+
24+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package wiki.liven.code.dataStructures;
2+
3+
import org.junit.Test;
4+
5+
/**
6+
* Created by leven on 2017/2/26.
7+
*/
8+
public class StackTest {
9+
@Test
10+
public void push() throws Exception {
11+
12+
}
13+
14+
@Test
15+
public void pop() throws Exception {
16+
17+
}
18+
19+
@Test
20+
public void getTop() throws Exception {
21+
22+
}
23+
24+
@Test
25+
public void stackEmpty() throws Exception {
26+
27+
}
28+
29+
}
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package wiki.liven.code.dataStructures;
2+
3+
import java.util.Arrays;
4+
5+
/**
6+
* Created by leven on 2017/2/21.
7+
*/
8+
public class ArrayList implements List{
9+
10+
/**
11+
* 列表中元素的个数
12+
*/
13+
private int size = 0;
14+
private int maxSize = 10;
15+
/**
16+
* 初始数组
17+
*/
18+
private Object[] elementData = new Object[maxSize];
19+
20+
/**
21+
* 在指定的位置i插入元素O
22+
* 插入元素,判断当前列表中元素的个数,
23+
* 当size==100,则需要扩张数组
24+
* 当size<100,则使用初始数组完成插入操作
25+
* 插入操作:
26+
* 从最后一个元素开始,往后移动一位,直到到index为止.
27+
* @param index
28+
* @param o
29+
*/
30+
@Override
31+
public void add(int index, Object o) {
32+
if(index<0||index>size-1)
33+
throw new IndexOutOfBoundsException("数组下标越界异常。");
34+
if (size==maxSize){
35+
Object[] targt = new Object[++maxSize];
36+
System.arraycopy(elementData,0,targt,0,elementData.length);
37+
for (int j = targt.length-2;j>=index;j--){
38+
targt[j+1] = targt[j];
39+
}
40+
targt[index] = o;
41+
size++;
42+
elementData = targt;
43+
}else if(size<maxSize){
44+
for (int j = size-1;j>=index;j--){
45+
elementData[j+1] = elementData[j];
46+
}
47+
elementData[index] = o;
48+
size++;
49+
}
50+
}
51+
52+
/**
53+
* 追加元素
54+
* @param o
55+
*/
56+
@Override
57+
public void add(Object o) {
58+
if (size==maxSize){
59+
Object[] targt = new Object[++maxSize];
60+
System.arraycopy(elementData,0,targt,0,elementData.length);
61+
targt[maxSize-1] = o;
62+
size++;
63+
elementData = targt;
64+
}else if(size<maxSize){
65+
elementData[size] = o;
66+
size++;
67+
}
68+
}
69+
70+
@Override
71+
public Object get(int index) {
72+
if(index<0||index>size-1)
73+
throw new IndexOutOfBoundsException("数组下标越界异常");
74+
Object o= elementData[index];
75+
return o;
76+
}
77+
78+
@Override
79+
public Object remove(int index) {
80+
if (index<0||index>size-1)
81+
throw new IndexOutOfBoundsException("数组下表越界异常");
82+
Object temp = elementData[index];
83+
for (int i = index;i<=size-1;i++){
84+
elementData[i] = elementData[i+1];
85+
}
86+
size--;
87+
return temp;
88+
}
89+
90+
@Override
91+
public int size() {
92+
return size;
93+
}
94+
95+
96+
@Override
97+
public String toString() {
98+
return "ArrayList{" +
99+
"elementData=" + Arrays.toString(elementData) +
100+
'}';
101+
}
102+
}

0 commit comments

Comments
 (0)