find your ArrayList,find yourself
6924 ワード
物には本末があり、事には終始があり、前後を知ると、近道になる.題記.よく見かけるのは、必ずしもそれを知っているとは限らない.この言葉ArrayListは長い間心の中で我慢していました!人を使ってそんなに長い間、ソースコードをつけて私を見てもいやで、これ以上、あなたが淘汰される日は遠くありません!ふん!!!
ポットの学友は梦の中から惊いて目を覚まして、脳の中であの20歳の初めのArrayListを思い出して、彼はまた本当にまじめに考えました:最近プログラミングはますます骨が折れて、多くの底のものは分からないで、新しい知识、新しいツールに出会った时いつも学ぶのが速くなくて、学ぶのがよくありません.彼は壁に自分が書いた警語を見上げた.男は自分に厳しくしなければならない.
魔法瓶はお腹の肉を振って、eclipseを開けて、自分でデータ構造のツール類を書く道を始めました.の
第1晩:ArrayList機能:配列構成、動的拡張サイズ、添削変更などの操作が可能.
第二晩:ArrayUtilツールクラス、練習強化
ポットの学友は梦の中から惊いて目を覚まして、脳の中であの20歳の初めのArrayListを思い出して、彼はまた本当にまじめに考えました:最近プログラミングはますます骨が折れて、多くの底のものは分からないで、新しい知识、新しいツールに出会った时いつも学ぶのが速くなくて、学ぶのがよくありません.彼は壁に自分が書いた警語を見上げた.男は自分に厳しくしなければならない.
魔法瓶はお腹の肉を振って、eclipseを開けて、自分でデータ構造のツール類を書く道を始めました.の
第1晩:ArrayList機能:配列構成、動的拡張サイズ、添削変更などの操作が可能.
package array;
import java.util.Arrays;
public class ArrayList {
private int size;
private static final int CAMACITY = 16;
private Object[] elementData;
public int size() {
return size;
}
public ArrayList() {
elementData = new Object[CAMACITY];
}
//
public void add(Object o) {
if (isFull()) {
increseSize();
}
elementData[size] = o;
size++;
}
//
public Object remove(int index) {
if (isEmpty()) {
throw new RuntimeException("the list is null");
}
if (index > elementData.length || index < 0) {
throw new IllegalArgumentException("IllegalArgument index:" + index);
}
System.arraycopy(elementData, index + 1, elementData, index, size - index);
size--;
return elementData[index];
}
//
public void add(int index, Object o) {
if (isFull()) {
increseSize();
}
Object[] elements = new Object[elementData.length];
for (int i = index; i < size && i >= 0; i++) {
elements[i + 1] = elementData[i];
}
elements[index] = o;
elementData = elements;
size++;
/**
* System.arraycopy(elementData, index, elementData, index+1,
* size-index); index , index+1 , (size-index)
* elementData[index]=o;
*/
}
//
public Object get(int index) {
if (index < 0) {
throw new IllegalArgumentException("the argument is an illegalArgument");
}
Object o = new Object();
for (int i = 0; i < size; i++) {
o = elementData[index];
}
return o;
}
//
public void increseSize() {
// Object[] newElementData=new Object[CAMACITY*2];
// for(int i=0;i {
private int currentIndex = 0;
@Override
public boolean hasNext() {
return currentIndex < size;
}
@Override
public Object next() {
Object o = new Object();
o = elementData[currentIndex++];
return o;
}
/**
* , next ,
*/
@Override
public void remove() {
System.arraycopy(elementData, currentIndex, elementData, currentIndex - 1, size - currentIndex + 1);
currentIndex--;// 1,
size--;
}
}
}
第二晩:ArrayUtilツールクラス、練習強化
package arrayUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class ArrayUtil {
/**
* a ,
: a = [7, 9 , 30, 3] , [3, 30, 9,7]
a = [7, 9, 30, 3, 4] , [4,3, 30 , 9,7]
* @param origin
* @return
*/
/**
* :
*/
ArrayList list=new ArrayList();
int i=-1;
public void reverseArray(int[] origin){
if(i=0){
list.add(origin[i]);
i--;
}
}
}
/**
* :
*/
public void reverseArrayTwo(int[] origin){
int[] newArr=new int[origin.length];
for(int i=0; i list1=new ArrayList();
public Object[] removeZero(int[] oldArray){
for(int i=0;i arr=new ArrayList<>();
for(int i=0 ;inewArr[i+1]){
newArr[i+1]=newArr[i];
newArr[i]=newArr[i+1];
}
}
return newArr;
}
/**
* , a1 a2 , a3, a3 a1 a2 ,
* a1 = [3, 5, 7,8] a2 = [4, 5, 6,7] a3 [3,4,5,6,7,8] , :
*/
public static int[] merge(int[] array1 , int[] array2){
int lena = array1.length;
int lenb=array2.length;
int[] c= new int[lena+lenb];
int i=0,j=0,k=0;
while (iarray2[j]){
c[k++]=array2[j++];
}else if(array1[i]==array2[j]){
c[k++]=array2[j++];
i++;//
}
}
while(i list=new ArrayList<>();
if(max<1){
throw new IllegalArgumentException();
}
if(max<2){
int[] arr={1};
return arr;
}
int i=1,j=1,sum=0;
list.add(i);
list.add(j);
while(sum list=new ArrayList<>();
int[] arr=new int[max];
for(int i=2;i list=new ArrayList<>();
int[] arr=new int[max];
for(int i=1;i