자바 에서 Array List 의 시 뮬 레이 션 실현

15371 단어 기술 류
ArrayList 시 뮬 레이 션 실현
1.배열 에 무한 정 요 소 를 추가 할 수 있 습 니 다.
1.어떻게 요 소 를 무한 추가 할 수 있 는 지 분석 합 니 다.이 럴 때 우 리 는 배열 의 크기 를 동태 적 으로 바 꿔 야 합 니 다.데 이 터 를 추가 할 때마다 배열 의 크기 를 판단 해 야 합 니 다.이것 은 이번 시 뮬 레이 션 의 중점 은 System.array copy(배열 복사)입 니 다.코드 는 다음 과 같 습 니 다.
	//       
	private int[] arr;
	//    
	private int index;
	//      
	private int initCapacity = 3;
	/**         3   */
	public MyArray() {
		arr = new int[initCapacity];
	}
	
	/**           */
	public MyArray(int len) {
		arr = new int[len];
	}

	/**      */
	public void add(int e) {
		//    (  )
		ensureCapacity();
		//          
		arr[index++] = e;
	}
	
	/**        */
	private void ensureCapacity() {
		if (index >= arr.length) {
			int[] temp = new int[arr.length+arr.length/2];
			System.arraycopy(arr, 0, temp, 0, arr.length);
			arr = temp;
			temp = null;
		}
	}


2.get 방법 으로 지정 한 위치의 요 소 를 얻 을 수 있 습 니 다.
1.이것 은 너무 많은 설명 이 필요 하지 않 습 니 다.세 계 는 색인 에 따라 요 소 를 되 돌려 주 고 코드 는 다음 과 같 습 니 다.
	/**         */
	public int getIndexValue(int p){
		return arr[p];
	}

3.size 방법 으로 배열 의 요소 의 개 수 를 얻 을 수 있 습 니 다.
1.index 앞에서 정의 한 색인 을 되 돌려 줍 니 다.이것 이 바로 크기 입 니 다.코드 는 다음 과 같 습 니 다.
	/**          */
	public int size(){
		return index;
	}	

4.시 뮬 레이 션 증가,삭제,검사,수정,정렬 작업
할 말 이 많 지 않 으 니 코드 를 직접 입력 하 세 요.
/**        */
	public void remove(int pos){
		//        
		//System.arraycopy(arr, pos+1, arr, pos, arr.length - (pos + 1));
		for(int i = pos;i < index-1;i++) {
			arr[i] = arr[i+1];
		}
		arr[index-1] = 0;
		index--;
	}
	
	/**      */
	public void show() {
		for(int i = 0;i < index ;i++) {
			System.out.print(arr[i]+" ");
		}
	}
	
	/**          */
	public void insert(int p,int element) {
		ensureCapacity();
		for(int i = index;i > p;i--) {
			arr[i] = arr[i-1];
		}
		arr[p] = element;
		index++;
	}
	
	/**  */
	public void sort(int[] a) {
		int team = 0;
		//    
		for (int i = 0; i < index; i++) {
			for (int j = i+1; j <= index; j++) {
				if (a[i] > a[j]) {
					team = a[i];
					a[i] = a[j];
					a[j] = team;
				}
			}
		}
		System.out.println("        :");
         for(int n:a) {
        	 System.out.print(n+" ");
         }
	}
	
	/**          */
	public void Updata(int index,int element) {
		arr[index] = element;
		show();
	}

좋은 웹페이지 즐겨찾기