[데이터 구조] [2] 배열 이 실현 하 는 선형 표 (선형 표 의 순서 저장 구조)
배열 을 통 해 간단 한 선형 표를 실현 하 였 다.
기능:
public class ArrayListTest {
	private Object[] elements;//    
	private  static final Object[] EMPTY_ARRAY = {};//   
	/**
	 *        
	 */
	public ArrayListTest(){
	    this.elements = EMPTY_ARRAY;
	}
	
	/**
	 *          
	 */
	public void add(Object element){
	    //      ,                    
	    Object[] newArr = new Object[elements.length + 1];
	    //    
	    for(int i = 0; i< elements.length; i++){
	    	newArr[i] = elements[i];
	    }
	    //          
	    newArr[elements.length] = element;
	    //            
	    this.elements = newArr;
	}
	
	/**
	 *            
	 */
	public void insert(int index, Object element){
	    //        
	    if(index < 0 || index >= elements.length){
	    	throw new RuntimeException("      ");
	    }
	    //      ,                    
	    Object[] newArr = new Object[elements.length + 1];
	    //    
	    for(int i = 0; i< newArr.length; i++){
		if(i < index){
	       	    //index       
		    newArr[i] = elements[i];
		}else if(index == i){
		    //index       element
	       	    newArr[i] = element;
		}else{
		    //index             -1   
		    newArr[i] = elements[i - 1];
		}
	    }
	    //            
	    this.elements = newArr;
	}
	
	/**
	 *         
	 */
	public Object get(int index){
	    //        
	    if(index < 0 || index >= elements.length){
		throw new RuntimeException("      ");
	    }
	    return elements[index];
	}
	
	/**
	 *         
	 */
	public void delete(int index){
	    //        
	    if(index < 0 || index >= elements.length){
		throw new RuntimeException("      ");
	    }
	    //      ,                    
	    Object[] newArr = new Object[elements.length - 1];
	    //    
	    for(int i = 0; i< newArr.length; i++){
	    	if(i < index){
		    //index       
		    newArr[i] = elements[i];
		}else{
		    //  index      
		    newArr[i] = elements[i + 1];
		}
	    }
	    //            
	    elements = newArr;
	}
	
	/**
	 *         
	 */
	public void deleteElement(Object object){
	    Integer index = null;
	    //           object     
	    for(int i = 0; i< elements.length; i++){
		if(object.equals(elements[i])){
		    index = i;
		    break;
		}
	    }
	    if(index != null){
		delete(index);
	    }else{
		System.out.println("         ");
	    }
	}
	
	/**
         *         
         */
	public int size(){
	    return elements.length;
	}
	
        /**
         *           
         */
        public boolean isEmpty(){
            return elements.length == 0;
        }
    
        /**
         *     
         */
	public void show(ArrayListTest arrayTest){
	    System.out.println(Arrays.toString(arrayTest.elements));
	}
	
	public static void main(String[] args) {
	    ArrayListTest arrays = new ArrayListTest();
	    arrays.add(1);
	    arrays.add(2);
	    arrays.add(3);
	    arrays.show(arrays);//[1, 2, 3]
		
	    arrays.insert(1, 0);
	    arrays.show(arrays);//[1, 0, 2, 3]
		
	    Object arrObj = arrays.get(1);
	    System.out.println(arrObj);//0
		
	    arrays.delete(2);
	    arrays.show(arrays);//[1, 0, 3]
		
	    arrays.deleteElement(3);
	    arrays.show(arrays);//[1, 0]
		
	    System.out.println(arrays.size());//2
	    System.out.println(arrays.isEmpty());//false
	}
}  장점:
단점:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.