1. 스스로 하 나 를 실현 한다.

참고 글:
https://blog.csdn.net/u012152619/article/details/41774325     데이터 구조의 배열
https://blog.csdn.net/u012736685/article/details/83029006  2. 수조
https://blog.csdn.net/u012152619/article/details/42059675  데이터 구조 와 알고리즘 개념 분석
https://github.com/liuyubobobo/Play-with-Algorithms  
https://www.jianshu.com/p/3a49875ce580        자바 동적 배열 구현
        위 에서 소개 한 것 은 기본 지식 입 니 다. 저 는 바로 코드 를 올 리 겠 습 니 다. 기본 지식 을 알 고 싶다 면 위 에 있 는 연결 을 보 거나 다른 블 로그 글 을 검색 하 세 요.
다음은 코드 부분 입 니 다. 많은 파 파 선생님 의 코드 를 참 고 했 습 니 다. 저 는 코드 짐꾼 O (∩ ∩) O 입 니 다!
 
동적 배열 코드 부분:

package com.dynamic.array;

public class MyArray {
	private E[] data;
	private int size;
	
	//     ,       capacity  Array
	public MyArray(int capacity){
		data = (E[])new Object[capacity];
		size =0;
	}
	
	 //         ,       capacity=10
	public MyArray(){
		this(10);
	}
	
	//        
	public int getCapacity(){
		return data.length;
	}
	
	//           
	public int getSize(){
		return size;
	}
	
	//         
	public boolean isEmpty(){
		return size == 0;
	}
	
	//  index            e
	public void add(int index, E e){
		if(index < 0 || index > size){
			throw new IllegalArgumentException("Add failed. Require index >0 and index < size.");
		}
		
		if(size == data.length){
			resize(2*data.length);
		}
		
		for(int i=size-1; i>=index;i--){
			data[i+1] = data[i];
		}
		data[index] = e;
		
		size++;
	}
	
	//              
	public void addLast(E e){
		add(size, e);
	}
	
	//              
	public void addFirst(E e){
		add(0, e);
	}
	
	//   index       
	public E get(int index){
		if(index < 0 || index > size)
			throw new IllegalArgumentException("Get failed. Required index >0 and index < size.");
		return data[index];
	}
	
	//   index        e
	public void set(int index, E e){
		if(index <0 || index > size)
			throw new IllegalArgumentException("Set failed. Required index >0 and index < size.");
		data[index] = e;
	}
	
	//           e
	public boolean contains(E e){
		for(int i = 0; i < size; i++){
			if(data[i].equals(e))
				return true;
		}
		return false;
	}
	
	//        e     ,       e,   -1
	public int find(E e){
		for (int i = 0; i < data.length; i++) {
			if(data[i].equals(e))
				return i;
		}
		return -1;
	}
	
	//       index     ,        
	public E remove(int index){
		if(index < 0 || index >= size){
			throw new IllegalArgumentException("Remove failed. Required index >0 and index 

 
 
위의 코드 는 상대 적 으로 완선 되 었 습 니 다. 만약 에 여러분 이 궁금 한 점 이 있 거나 관련 건의 가 있 으 면 댓 글 을 남 겨 주세요.♥(ˆ◡ˆԅ)
 
 
 
 
 

좋은 웹페이지 즐겨찾기