From 2f5a03f209f73445de5ec8896d7ce6afa96d852c Mon Sep 17 00:00:00 2001
From: GordenChow <513274874@qq.com>
Date: Thu, 9 Mar 2017 15:34:46 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AC=AC=E4=B8=80=E5=91=A8?=
=?UTF-8?q?=E4=BD=9C=E4=B8=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
group27/513274874/homework/.classpath | 7 +
group27/513274874/homework/.gitignore | 1 +
group27/513274874/homework/.project | 17 ++
.../src/com/coding/basic/ArrayList.java | 120 +++++++++++
.../src/com/coding/basic/BinaryTreeNode.java | 32 +++
.../src/com/coding/basic/Iterator.java | 7 +
.../src/com/coding/basic/LinkedList.java | 188 ++++++++++++++++++
.../homework/src/com/coding/basic/List.java | 9 +
.../homework/src/com/coding/basic/Queue.java | 48 +++++
.../homework/src/com/coding/basic/Stack.java | 65 ++++++
.../test/com/coding/basic/ArrayListTest.java | 151 ++++++++++++++
11 files changed, 645 insertions(+)
create mode 100644 group27/513274874/homework/.classpath
create mode 100644 group27/513274874/homework/.gitignore
create mode 100644 group27/513274874/homework/.project
create mode 100644 group27/513274874/homework/src/com/coding/basic/ArrayList.java
create mode 100644 group27/513274874/homework/src/com/coding/basic/BinaryTreeNode.java
create mode 100644 group27/513274874/homework/src/com/coding/basic/Iterator.java
create mode 100644 group27/513274874/homework/src/com/coding/basic/LinkedList.java
create mode 100644 group27/513274874/homework/src/com/coding/basic/List.java
create mode 100644 group27/513274874/homework/src/com/coding/basic/Queue.java
create mode 100644 group27/513274874/homework/src/com/coding/basic/Stack.java
create mode 100644 group27/513274874/homework/test/com/coding/basic/ArrayListTest.java
diff --git a/group27/513274874/homework/.classpath b/group27/513274874/homework/.classpath
new file mode 100644
index 0000000000..2d7497573f
--- /dev/null
+++ b/group27/513274874/homework/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/group27/513274874/homework/.gitignore b/group27/513274874/homework/.gitignore
new file mode 100644
index 0000000000..ae3c172604
--- /dev/null
+++ b/group27/513274874/homework/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/group27/513274874/homework/.project b/group27/513274874/homework/.project
new file mode 100644
index 0000000000..b6d8ce6204
--- /dev/null
+++ b/group27/513274874/homework/.project
@@ -0,0 +1,17 @@
+
+
+ coding2017
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/group27/513274874/homework/src/com/coding/basic/ArrayList.java b/group27/513274874/homework/src/com/coding/basic/ArrayList.java
new file mode 100644
index 0000000000..1b6f5c4e7d
--- /dev/null
+++ b/group27/513274874/homework/src/com/coding/basic/ArrayList.java
@@ -0,0 +1,120 @@
+
+package com.coding.basic;
+
+import java.util.Arrays;
+
+/**
+ * @autor zhougd 20170306
+ * 数组实现ArrayList
+ */
+public class ArrayList implements List {
+
+ private int size = 0;
+
+ private Object[] elementData;
+
+ //扩容默认值
+ private static final int INCREAMENT_CAP = 10;
+
+ //含参数的构造函数
+ public ArrayList(int size, Object[] elementData) {
+ this.size = size;
+ this.elementData = elementData;
+ }
+
+ //默认100容量的构造函数
+ public ArrayList() {
+ this.size = 0;
+ this.elementData = new Object[100];
+ }
+
+ @Override
+ public void add(Object o) {
+ //判断超过容量自动扩容
+ if (this.size + 1 > this.elementData.length) {
+ increase();
+ }
+ this.elementData[size++] = o;
+ }
+
+ @Override
+ public void add(int index, Object o) {
+ if (index < 0 || index > this.size) {
+ throw new IndexOutOfBoundsException("Index out of bound!");
+ }
+ //判断超过容量自动扩容
+ if (this.size + 1 > this.elementData.length) {
+ increase();
+ }
+ this.size++;
+ //index后面数组后移一位
+ for (int cur = this.size; cur > index; cur--) {
+ this.elementData[cur] = this.elementData[cur - 1];
+ }
+
+ this.elementData[index] = o;
+
+ }
+
+ public Object get(int index) {
+ if (index < 0 || index > this.size) {
+ throw new IndexOutOfBoundsException("Index out of bound!");
+ }
+ return this.elementData[index];
+ }
+
+ public Object remove(int index) {
+ Object o = this.get(index);
+ this.size--;
+ //index后面的数向前移动一位
+ for (int cur = index + 1; cur < this.size; cur++) {
+ this.elementData[cur] = this.elementData[cur + 1];
+ }
+ return o;
+ }
+
+ public int size() {
+ return this.size;
+ }
+
+ public Iterator iterator() {
+ return new ArrayListIterator();
+ }
+
+ @Override
+ public String toString() {
+ String arrayStr = "ArrayList{ size = " + this.size() + " , ";
+
+ arrayStr += "elementData=[";
+ for(int i = 0 ;isize()){
+ throw new IndexOutOfBoundsException("Index out of bound !");
+ }
+ }
+
+ private Node getNode(int index ){
+
+ Node node = this.head;
+ for(int i = 0 ;i
+* @since 三月 6, 2017
+* @version 1.0
+*/
+public class ArrayListTest {
+
+@Before
+public void before() throws Exception {
+
+}
+
+@After
+public void after() throws Exception {
+}
+
+/**
+*
+* Method: add(Object o)
+*
+*/
+@Test
+public void testAddO() throws Exception {
+ ArrayList arrayList = new com.coding.basic.ArrayList();
+ arrayList.add(100);
+ arrayList.add(20);
+
+ for(int i = 1 ;i <= 200 ;i++){
+ arrayList.add(new Random().nextInt(100));
+ }
+
+ System.out.println(arrayList);
+
+ assert(arrayList.size() == 202);
+}
+
+/**
+*
+* Method: add(int index, Object o)
+*
+*/
+@Test
+public void testAddForIndexO() throws Exception {
+ ArrayList arrayList = new com.coding.basic.ArrayList();
+ arrayList.add(1);
+ arrayList.add(2);
+ arrayList.add(3);
+ arrayList.add(4);
+ arrayList.add(5);
+
+ arrayList.add(3,"添加");
+ //arrayList.add(100,3);
+ assert(arrayList.size() == 6);
+ System.out.println(arrayList);
+}
+
+/**
+*
+* Method: get(int index)
+*
+*/
+@Test
+public void testGet() throws Exception {
+ ArrayList arrayList = new com.coding.basic.ArrayList();
+ arrayList.add(1);
+ arrayList.add(2);
+ arrayList.add(3);
+ arrayList.add(4);
+ arrayList.add(5);
+
+ assert(((Integer)arrayList.get(3)).intValue() == 4);
+}
+
+/**
+*
+* Method: remove(int index)
+*
+*/
+@Test
+public void testRemove() throws Exception {
+ ArrayList arrayList = new com.coding.basic.ArrayList();
+ arrayList.add(1);
+ arrayList.add(2);
+ arrayList.add(3);
+ arrayList.add(4);
+ arrayList.add(5);
+
+ arrayList.remove(3);
+ //arrayList.add(100,3);
+ assert(arrayList.size() == 4);
+ System.out.println(arrayList);
+}
+
+/**
+*
+* Method: size()
+*
+*/
+@Test
+public void testSize() throws Exception {
+//TODO: Test goes here...
+
+ ArrayList arrayList = new com.coding.basic.ArrayList();
+ arrayList.add(100);
+ arrayList.add(20);
+
+ for(int i = 1 ;i <= 200 ;i++){
+ arrayList.add(new Random().nextInt(100));
+ }
+
+ System.out.println(arrayList);
+
+ assert(arrayList.size() == 202);
+}
+
+/**
+*
+* Method: iterator()
+*
+*/
+@Test
+public void testIterator() throws Exception {
+//TODO: Test goes here...
+ ArrayList arrayList = new com.coding.basic.ArrayList();
+ arrayList.add(100);
+ arrayList.add(20);
+
+ for(int i = 1 ;i <= 200 ;i++){
+ arrayList.add(new Random().nextInt(100));
+ }
+ System.out.println(arrayList);
+
+ Iterator iterator = arrayList.iterator();
+ while(iterator.hasNext()){
+ System.out.print(iterator.next() + ",");
+ }
+
+ assert(arrayList.size() == 202);
+}
+
+}