#배열(Array)
같은 타입의 여러개의 변수를 하나의 묶음으로 만든 것을 배열이라고 합니다.
같은 타입의 데이터를 연속된 공간에 나열시키고 각 데이터에 인덱스를 부여해 놓은 것입니다.
전체 배열에 단일 이름이 주어진다.
각 값에는 숫자 인덱스가 부여된다.
자바는 배열을 기능으로 보고 있어 heep 메모리에 올리고 사용해야된다. 기능들의 집합이다
같은 타입들이 저장되어야 한다. 메모리에 연속된 데이터를 저장한다. 번호를 입력해준다.(0번부터시작)
여러개의 데이터를 쉽게 관리하게 만들어졌다.
단점, 크기변경이 불가능하다.
#1차원배열
1. 배열 사용(선언) 방법
데이터 타입[] 배열이름; // 배열 선언1 (참조 변수) 배열이름은 stack에 저장 ( [] : 묶음 )
or
데이터 타입 배열이름[]; // 배열 선언2
배열이름 = new 데이터타입[요소의 개수]; // 배열의 메모리 할당(new 배열의 메모는 힙(4byte) 영역에 저장하는 참조변수이다.)
배열이름[index] = 값; // 배열의 초기화
데이터타입[] 배열의 이름 = new 데이터타입[요소의 개수]; // 배열의 선언 및 메모리 할당
ex) 배열의 초기화;
int[] arr = {90, 80, 100, 70, 50};
or
int[] arr = new int[5];
arr[0] = 90;
arr[1] = 80;
arr[2] = 100;
arr[3] = 70;
arr[4] = 50;
2. 배열 예시(1)
3. 배열 예시(2)
● arr.length는 arr변수에 대한 길이를 숫자 대신 표한 것이다.
따라서, 배열의 갯수를 바꿔줘도 자동적으로 바뀌기 때문에 별도로 수정할 필요가 없다.
4. 배열 예시(3)
문제)
3개의 수를 입력받아 총점과 평균을 구하는 프로그램을 작성합니다.
입력)
1번째 점수를 입력하세요. 90
2번째 점수를 입력하세요. 80
3번쨰 점수를 입력하세요. 70
출력)
입력한 점수는 90 80 70 입니다.
총점 : xx점
평균 : xx점
5. 배열 예시(4)
문제)
70 30 60 90 10 다음 숫자 중 최대값 / 최소값을 노출해보자
6. 배열 예시(5)
문제)
50 90 10 30 70 중 제일 큰수부터 순서대로 나열해보자(내림차순정렬)
// 결과값 : 90 50 10 30 70 50 <-> 90 자리바꿈
// 결과값 : 90 70 10 30 50 50 <-> 70 자리바꿈
// 결과값 : 90 70 30 10 50 10 <-> 30 자리바꿈
// 결과값 : 90 70 50 10 30 30 <-> 50 자리바꿈
// 결과값 : 90 70 50 30 10 10 <-> 30 자리바꿈
7. 배열 예시(6)
문제)
로또 예상 프로그램을 작성합니다.
★단, 숫자는 중복되지 않아야 하며 오름차순으로 정렬합니다.
출력)
3 14 20 35 41 45
1. 로또번호를 출력한다.
2. 오름차순으로 정렬한다.
3. 중복되지 않게 한다. 비교할때에는 앞에서
#2차원배열 (다차원배열)
1차원 배열을 여러 개 겹친 것으로 특수한 경우를 제외하면 3차원이상을 사용하지 않습니다.
행과 열이 있는 데이터 형태를 말한다.
1. 2차원 배열 사용(선언) 방법
데이터타입[][] 배열이름;
배열이름 = new 데이터타입[행][열]
ex)[2][3]
배열이름(열) [ 0 ]
↓ ↓ ↓
배열이름(행) → 0 [ 0,0 ] [ 0,1 ] [ 0,2 ]
배열이름(행) → 1 [ 1,0 ] [ 1,1 ] [ 1,2 ]
↑ ↑ ↑
배열이름(열) [ 1 ]
[1][2][3]
[2][4][6]
이해하기 쉽게 예시를 들어준것이다.!
2. 2차원 배열 예시(1)
● 처음써져있는 for문은 행에 시작하는 배열 차수이다. arr은 가장먼저 있는 차수인 [2]를 가르킨다
● 중첩for문 2차원 열을 가르키는 배열차수이다. arr[i] 차수를 붙이면 [3]을 가르키는 포인터가 된다.
'🎨 Programming > JAVA' 카테고리의 다른 글
[JAVA] 12. 메인(main) 메서드 / 스트링(String) 클래스 (0) | 2020.06.19 |
---|---|
[JAVA] 11. 함수 / 메소드(Method) (0) | 2020.06.19 |
[JAVA] 8. 가위바위보 게임(Random) (0) | 2020.06.16 |
[JAVA] 7. 반복문(while문 / for문) (0) | 2020.06.13 |
[JAVA] 6. 조건문( if문 / switch문) (0) | 2020.06.13 |