Skip to content

Commit

Permalink
将ensureCapacity设为public方法 忽略bin文件夹
Browse files Browse the repository at this point in the history
  • Loading branch information
CheungChan committed Mar 12, 2017
1 parent 0645f9f commit 24a01a7
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
1 change: 1 addition & 0 deletions group05/1377699408/作业/20170226/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/bin
56 changes: 56 additions & 0 deletions group05/1377699408/作业/20170226/src/list/ArrayList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package list;

import java.util.Arrays;

public class ArrayList<E> {
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);
}
}
}

0 comments on commit 24a01a7

Please sign in to comment.