대량의 데이터를 효율적으로 관리하기 위한 메커니즘
같은 타입의 여러 변수를 하나의 묶음으로 다루는 자료구조
① int[] ② numbers = ③ new ④ int[3];
① 데이터 타입 정수형 [배열선언]
② 레퍼런스 변수명
③ 레퍼런스 타입의 변수를 생성할때 사용하는 키워드
④ 데이터 타입 정수형 배열 [공간 크기]
(인덱스가 2번까지 있음. [ 0 , 1 , 2 ] )
// 배열 : 같은 타입의 여러변수를 하나의 묶음으로 다루는 자료구조
// 배열의 특징
// 1. 같은 자료형만 하나로 묶을 수 있다.
// 2. 인덱스 번호는 0부터 순차적으로 1씩 증가 한다.
// 3. 크기가 고정적이다. (배열의 크기를 더 늘릴 수 없다.)
// 정수형 데이터 5개를 보관할 수 있는 array 배열 생성
int[] array = new int[5];
System.out.println(array); // array의 주소 값 출력
System.out.println(array[2]); // array의 2번 주소 값 출력
// 배열 2 주소 공간에 7 값을 대입해줌(넣어줌)
array[2] = 7;
System.out.println(array[2]); // 7 출력
// 배열을 생성함과 동시에 데이터를 집어 넣는 방법
String[] names = {"전송민", "변현호", "김민성", "김도원"};
System.out.println(names[1]); // 1주소의 이름 출력
아래 이미지에서 출력 했는데 @ 가 보이면 주소값 이며 레퍼런스 타입이라는 걸 알 수 있다.
//실습예제 배열
/*
* 1. 정수형 데이터를 5개를 보관할수 있는 array 배열 생성
* 2. 배열의 모든 인덱스 안에 있는 데이터를
* 랜덤한 값으로 바꿔주세요! (1~10)
* 3. 배열 안에 있는 모든 값을 출력
*/
Random ran = new Random();
// 1. 정수형 데이터를 5개를 보관할수 있는 array 배열 생성
int[] array = new int[5];
// 2. 배열의
// ! 배열의 크기를 가져오는 방법
// --> 배열이름.length
for (int i = 0; i < array.length; i++) {
//2. 배열의 모든 인덱스 안에 있는 데이터를 랜덤한 값으로 바꿔주세요! (1~10)
array[i] = ran.nextInt(10) + 1;
//3. 배열 안에 있는 모든 값을 출력
System.out.println(array[i]);
}
//배열 안에 있는 값을 한번에 출력하는 방법
System.out.println(Arrays.toString(array));
/*
* 문제 배열 예제 - 로또 번호 추첨 1. 정수형 데이터 5개를 저장할 수 있는 배열 array를 선언하세요. 2. 배열 안의 데이터를 모두
* 임의의 값으로 초기화하세요(1~10 까지의 수) 3. 단, 배열에 중복된 값을 제거해주세요. 4. 배열 안의 데이터를 모두 출력해주세요.
*/
Random ran = new Random();
int[] ary = new int[5];
int num = 0;
System.out.println("==== 로또 타임 ====");
System.out.println("이번주 출력 번호는요 .... !!");
for (int j = 0; j < 5; j++) {
// j번 방에 랜덤숫자 집어넣기
ary[j] = ran.nextInt(10) + 1;
for (int i = 0; i < j; i++) {
// j번방 중복 숫자 검사하기
if (ary[j] == ary[i]) {
// 중복된 숫자가 발생했다면 인덱스 번호를 다시 앞으로 보낼 수 있는 코드
j--;
// 만약 중복된 숫자가 하나라도 발견 됐다면 멈추고 바깥 for 문으로 이동!
break;
}
}
}
System.out.println(Arrays.toString(ary));