Burninghering's Blog
Published 2022. 2. 6. 02:46
5-2.배열(Array) JAVA

Array의 특징

  • 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조
  • 정해진 크기가 있음
  • 요소의 추가와 제거시 다른 요소들의 이동이 필요함
  • 배열의 i 번째 요소를 찾는 인덱스 연산이 빠름
  • jdk 클래스 : ArrayList, Vector

 

MyArray.java

package ch02;

public class MyArray {

	int[] intArr;   	//int array
	int count;  		//개수
		
	public int ARRAY_SIZE;
	public static final int ERROR_NUM = -999999999;
	
	public MyArray()
	{
		count = 0;
		ARRAY_SIZE = 10; //배열 사이즈 10
		intArr = new int[ARRAY_SIZE]; //사이즈 10으로 시작
	}
	
	public MyArray(int size)
	{
		count = 0;
		ARRAY_SIZE = size;
		intArr = new int[size];
	}
	
	public void addElement(int num)
	{
		if(count >= ARRAY_SIZE){
			System.out.println("not enough memory");
			return;
		}
		intArr[count++] = num; //num 넣고 나서 count(개수) 증가 
				
	}

	public void insertElement(int position, int num) //인덱스, 넣으려는 요소
	//마지막 위치(count-1)에서 포지션까지의 위치를 하나씩 오른쪽으로 밀고 포지션에 요소를 넣자
	{
		int i; //인덱스
		
		if (position<0 || position> count) {
			return;
		}
		
		if (count>=ARRAY_SIZE) { //배열 꽉 찼을 때
			return;
		}
		
		for (i=count-1; i>=position; i++) {
			intArr[i+1]=intArr[i];
		}
		
		intArr[position]=num;
		count++;
		
	}
	
	public int removeElement(int position) //삭제하려는 위치까지 마지막 요소들이 왼쪽으로 이동하면 된다.
	{
		int ret = ERROR_NUM; //반환값
		
		if  (isEmpty()){
			System.out.println("Array is empty");
			return ret;
		}
		
		if (position<0 || position > count-1) {
			return ret;
		}
		
		ret = intArr[position];
		
		for (int i=position; i<count-1;i++) {
			intArr[i]=intArr[i+1];
		}
		
		count--;
		
		return ret;
	}
	
	public int getSize()
	{
		return count;
	}
	
	public boolean isEmpty()
	{
		if(count == 0){
			return true;
		}
		else return false;
	}
	
	public int getElement(int position)
	{
		if(position < 0 || position > count-1){
			System.out.println("검색 위치 오류. 현재 리스트의 개수는 " + count +"개 입니다.");
			return ERROR_NUM;
		}
		return intArr[position];
	}
	
	public void printAll()
	{
		if(count == 0){
			System.out.println("출력할 내용이 없습니다.");
			return;
		}
			
		for(int i=0; i<count; i++){
			System.out.println(intArr[i]);
		}
		
	}
	
	public void removeAll()
	{
		for(int i=0; i<count; i++){
			intArr[i] = 0;
		}
		count = 0;
	}
}
profile

Burninghering's Blog

@개발자 김혜린

안녕하세요! 반갑습니다.