From 24a01a7141610b1d8d6ee23e2ddbb064665aa245 Mon Sep 17 00:00:00 2001 From: cheungchan <1377699408@qq.com> Date: Thu, 2 Mar 2017 23:04:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=B0=86ensureCapacity=E8=AE=BE=E4=B8=BApu?= =?UTF-8?q?blic=E6=96=B9=E6=B3=95=20=E5=BF=BD=E7=95=A5bin=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20170226/.gitignore" | 1 + .../20170226/src/list/ArrayList.java" | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 "group05/1377699408/\344\275\234\344\270\232/20170226/.gitignore" create mode 100644 "group05/1377699408/\344\275\234\344\270\232/20170226/src/list/ArrayList.java" diff --git "a/group05/1377699408/\344\275\234\344\270\232/20170226/.gitignore" "b/group05/1377699408/\344\275\234\344\270\232/20170226/.gitignore" new file mode 100644 index 0000000000..5e56e040ec --- /dev/null +++ "b/group05/1377699408/\344\275\234\344\270\232/20170226/.gitignore" @@ -0,0 +1 @@ +/bin diff --git "a/group05/1377699408/\344\275\234\344\270\232/20170226/src/list/ArrayList.java" "b/group05/1377699408/\344\275\234\344\270\232/20170226/src/list/ArrayList.java" new file mode 100644 index 0000000000..3e3777aee1 --- /dev/null +++ "b/group05/1377699408/\344\275\234\344\270\232/20170226/src/list/ArrayList.java" @@ -0,0 +1,56 @@ +package list; + +import java.util.Arrays; + +public class ArrayList { + private transient static final int INITIAL_SIZE = 10; + private transient int arrayLength; + private transient int size; + private transient E[] array; + public ArrayList(){ + array = (E[]) new Object[INITIAL_SIZE]; + arrayLength = INITIAL_SIZE; + } + public ArrayList(int size){ + if(size<=0){ + throw new IllegalArgumentException("参数不可以小于0"); + } + array = (E[])new Object[size]; + arrayLength = array.length; + ensureCapacity(size); + this.size = size; + } + public int size(){ + return size; + } + public void add(E e){ + ensureCapacity(size+1); + array[size] = e; + size++; + } + public E get(int index){ + if(index<0 || index > size){ + throw new IllegalArgumentException("索引越界"); + } + return array[index]; + + } + public E set(int index, E e){ + if(index<0 || index>size){ + throw new IllegalArgumentException("索引越界"); + } + E result = array[index]; + array[index] = e; + return result; + } + public void ensureCapacity(int size){ + E[] oldArray = array; + int oldSize = arrayLength; + while(size>arrayLength){ + arrayLength = arrayLength + (arrayLength >> 1); + } + if(oldSize!=arrayLength){ + array = Arrays.copyOf(oldArray, arrayLength); + } + } +} From 94fc3f7e4d9b9cf74ef3918237c42d59197bfe50 Mon Sep 17 00:00:00 2001 From: cheungchan <1377699408@qq.com> Date: Sun, 12 Mar 2017 23:24:27 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=BC=96=E8=BE=91.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1377699408/\344\275\234\344\270\232/20170226/.gitignore" | 3 +++ 1 file changed, 3 insertions(+) diff --git "a/group05/1377699408/\344\275\234\344\270\232/20170226/.gitignore" "b/group05/1377699408/\344\275\234\344\270\232/20170226/.gitignore" index 5e56e040ec..eba4a99831 100644 --- "a/group05/1377699408/\344\275\234\344\270\232/20170226/.gitignore" +++ "b/group05/1377699408/\344\275\234\344\270\232/20170226/.gitignore" @@ -1 +1,4 @@ /bin +/.settings +.classpath +.project \ No newline at end of file