Java - 1차원 배열

수현·2022년 9월 23일

Java

목록 보기
7/23

동일한 type의 데이터를 배열로 묶어서 저장, 배열 선언 시 길이도 함께 선언해야하며 입력된 값은 Heap memory영역에 저장됨

int[] intList = new int[5];
intList[0] = 1;
intList[1] = 2;
intList[2] = 3;
intList[3] = 4;
intList[4] = 5;

int type으로 배열 [ ]선언, 이름은 intList, 길이는 5
참조변수인 intList는 stack 메모리 영역에 해당배열의 위치(번지수)를 저장하는 역할
메모리에 있는 intList 배열 변수를 가져다 [n](n번째 있는 순서)에 숫자 할당

int[] intList = new int[]{1, 2, 3, 4, 5};
int[] intList = {1, 2, 3, 4, 5};

위의 두 가지 방식으로도 배열 선언 및 값의 대입 가능

int[] intList = new int[5];

위와 같이 값을 대입하기 전에는 초기값이 0이다.
Heap 메모리는 빈칸으로 존재할 수 없으며 초기값이 강제 설정됨
숫자 = 0, boolean = false, 참조자료형 = null로 초기값 설정

ex) 1~100까지 저장하는 고정배열

int[] intList_100 = new int[100];
for(int i = 0; i<intList_100.length; i++) {
	intList_100[i] = i+1;
}
for(int i = 0; i<intList_100.length; i++) {
	System.out.println(intList_100[i]);
}

배열 출력 시 'Arrays.toString(배열)'을 사용하면 대괄호 안에 모든 값이 나열됨

int[] intList = new int[]{1, 2, 3, 4, 5};
System.out.println(Arrays.toString(intList));
//[1, 2, 3, 4, 5]

<문제>

1~45까지 숫자를 랜덤으로 뽑아서 저장하는 고정배열을 만드시오, 중복x

int saveNum = 0;
int[] lottoNumList = new int[6];
boolean check = true;

for(int i = 0; i<lottoNumList.length; i++) {
	check = true;
    //true라는 것을 다시 써줘야 false일때 다시 true로 초기화됨.
	saveNum = (int)(Math.random()*45)+1;
	
	for(int k = 0; k<i; k++) {
		if(saveNum == lottoNumList[k]) {
			System.out.println("같은 숫자를 뽑았습니다.");
			check = false;
			break;
		};
	}
			
	if(check) {
		lottoNumList[i] = saveNum;
		System.out.println((i+1)+"번째 숫자는 "+lottoNumList[i]+"입니다.");
	} else {
		i--;
		continue;
	}
}
profile
실패와 성장을 기록합니다 🎞️

0개의 댓글