1. 핵심 정리
배열이란?
같은타입의 데이터를 여러 개 저장할 수 있는 자료 구조
배열의 선언
|
1
2
3
4
5
6
7
8
9
|
int[] arr=new int[크기]; 또는 int arr[]=new int[크기];
int[] arr= {1,2,3,4,5};
|
cs |
index란?
생성된 배열의 위치 값, index는 0부터 시작
배열의 길이
배열이 가지고 있는 length값으로 배열의 길이를 알 수 있다
Arrays
배열을 지원하는 클래스로 배열과 관련된 다양한 기능을 가지고 있다
다차원 배열
배열은 다차원 배열을 만들 수 있다
다차원 배열 중에서 행렬 구조로 사용되는 2차원 배열이 주로 사용
다차원(2차원) 배열의 선언
|
1
2
3
4
5
6
7
8
9
|
int[][]arr=new int[크기][크기];
int[][]arr= {{1,2},{3,4},{5,6}};
|
cs |
향상된 for문
JDK 1.5 이후부터 새로운 for문인 향상된 for문 사용 가능
|
1
2
3
4
5
6
7
8
9
|
for(int 2.num : 1.score) {
//데이터타입 변수명 반복대상
3. 실행코드
|
cs |
1 → 반복요소가 있을 경우 → 2 → 3
1 → 반복요소가 없을 경우 → for문 탈출
2. 응용 문제
Q1. 다음 중 배열을 생성하는 방법으로 틀린 것은 무엇일까요?
- int[] arr=new int[4];
- int arr[]=new int[4];
- int arr[]={1,2,3,5};
- int[][] arr=new int[][4];
A1. 4
다차원 배열의 경우 int[][] arr=new int[크기][크기]; 의 형태여야 하는데
int[][] arr=new int[][크기]; 로 크기를 입력받지 못했다.
Q2. 다음 코드의 빈칸을 완성해 주어진 배열에서 짝수만 더하여 합을 구해보세요.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package section06;
public class ArrayExample {
public static void main(String[] args) {
int[] arr= {1,2,3,4,5,6,7,8,9,10};
int sum=0;
}
System.out.println("짝수들의 합 : "+sum);
}
}
|
cs |
int sum=0
이후에 반복문을 사용해서 짝수들의 합을 만드는 메인코드를 완성했다.
A2.
for(int i=0;i<arr.length;i++) { // arr배열의 길이만큼 반복해서
if(arr[i]%2==0) { // 데이터값이 짝수라면
sum+=arr[i]; // sum변수에 더한다.
Q3. 철수는 동생과 카드 게임을 했습니다. 카드 게임에 사용된 카드는 중복되는 숫자없이 총 10장입니다.
배열과 핸덤 함수를 이용해 철수가 게임에 사용했던 카드를 구해보세요.
카드에 적힌 숫자는 1부터 10이며, 카드는 섞여있으므로 순서는 상관없습니다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package section06;
import java.util.Arrays;
import java.util.Random;
public class Test01 {
public static void main(String[] args) {
Random rand = new Random(); // 카드 랜덤함수
int card = 5; // 카드를 받는수
int shuffle[] = new int[card * 2]; // 섞은 카드 배열
for (int i = 0; i < shuffle.length; i++) { // 카드배열길이만큼 반복 = 총 10장 뽑아야하니까
int cardNum = rand.nextInt(10) + 1;
for (int j = 0; j < i; j++) {// i-1만큼 반복
if (shuffle[j] == cardNum) { // cardNum이 배열에있다면
cardNum = rand.nextInt(10) + 1; // 다시 랜덤함수 쓰고
j=-1; // 반복문 다시 처음부터 하려면 -1을 해야한다
}
}
shuffle[i] = cardNum; // 중복이 없으면 배열에 숫자 저장
}
int user[]=new int[card]; // 철수 배열 - 5장씩 동생과 카드를 나눠가진다.
int userBro[]=new int[card]; // 동생 배열
for(int i=0;i<card;i++) { // 5장씩 카드를 나눠가지는 행위
user[i]=shuffle[i];
}
for(int a=card;a<10;a++) { // 5장씩 카드를 나눠가지는 행위
userBro[a-5]=shuffle[a];
}
System.out.println("철수 : "+Arrays.toString(user));
System.out.println("동생 : "+Arrays.toString(userBro));
}
}
|
cs |
'JAVA > JAVA복습(멘토씨리즈 자바)' 카테고리의 다른 글
| [JAVA복습] 08. 메서드 (0) | 2024.07.20 |
|---|---|
| [JAVA복습] 07. 클래스 (0) | 2024.07.18 |
| [JAVA복습] 05. 제어문(2) (0) | 2024.07.16 |
| [JAVA복습] 04. 제어문(1) (0) | 2024.07.16 |
| [JAVA복습] 03. 연산자 (0) | 2024.07.15 |