앞에 배운거는 정리 언제하나......
일단 3주차 1일과정에서 배운 배열 Array 복습차원 차 정리부터 한다.
나처럼 java 처음배우는 사람은 다른 강의 다 필요없고 무조건 자바의 정석이다 ㅠ
자바의 정석 굳굳굳
이걸로 복습하면서 그나마 이해하는중
배열 : 같은 타입의 여러 변수를 하나의 묶음으로 처리.
많은 양의 데이터를 저장할 때 변수를 그만큼 선언해야 한다면 불편하기 때문에 배열로 다룬다. 배열은 같은 타입을 저장할 때만 가능!
배열은 각 저장공간이 연속적으로 배치되어 있다.
배열의 선언과 생성
배열의 선언 : 타입[ ] 변수이름;
배열을 의미하는 대괄호 [ ]는 타입 뒤에 와도 되고 변수이름 뒤에 와도 된다. 그러나 java에서는 일반적으로 타입[ ] 변수이름; 이 양식을 많이 쓰는듯.
ex) int[ ] score; // score라는 변수의 배열(int타입)
String[ ] name; // name라는 변수의 배열(String타입)
배열의 생성
배열의 선언은 단순히 배열을 다루기 위한 참조변수를 위한 공간이 만들어진것.
생성을 해야 값을 저장할 수 있는 공간이 만들어진다.
배열의 생성은 연산자 'new'를 이용한다.
변수이름 = new 타입[길이]; // 배열의 타입과 길이를 지정
ex) score = new int[5]; // int 타입 5개 길이의 배열 생성
배열의 선언과 생성 : 타입[ ] 변수이름 = new 타입[길이];
배열의 선언과 생성을 동시에 할 수 있다.
예) int [ ] score = new int[5];
배열의 인덱스
배열의 요소 : 배열의 각 저장공간
배열이름[인덱스] 형식으로 배열의 요소에 접근한다.
인덱스(index) : 배열 요소마다 붙여진 일련번호 (1이 아닌 0부터 시작한다.
인덱스(index) 범위 : 0 ~ 배열길이-1 (0부터 시작하기 때문에 배열길이에서 -1까지가 범위다)
예) int [ ] score = new int[5]; // 인덱스의 범위는 0부터 5-1 (0 ~ 4까지)
인덱스(index)는 상수,변수,수식이 사용 가능하다. → for문으로 사용가능
score[0] = 0;
score[1] = 5;
score[2] = 10;
score[3] = 15;
for (int i=0; i<=3; i++){ // 0~4-1 (배열길이-1)
score[i] = i * 5; // score[0]=0, score[1] = 5, ....
}
배열의 길이 (배열이름.length)
배열은 한번 생성하면 길이 변경 불가. 이미 생성한 배열의 길이는 변하지 않는다.
그렇기 때문에 for문 조건식에 배열 길이를 입력하는것 보다 배열이름.length를 사용하는 것이 좋다. (배열 길이 변경 시 for문 변경할 필요x)
int [ ] score = new int[3]
for (int i=0; i < score.length; i++) // 배열길이인 3대신에 score.length 사용
배열의 초기화
배열은 자동적으로 기본값 0으로 초기화 되어 있다. 원하는 값을 저장하려면 각 요소마다 값을 지정해야한다.
값에 일정한 규칙이 있는 경우 for문을 이용하는 것이 좋다.
값에 규칙이 없는 경우 초기화 하는 방법은 저장할 값들을 { } 안에 쉼표로 구분해서 나열하면 된다.
{ }안의 개수에 따라 배열 길이는 자동으로 결정되니까 [ ]안에 길이는 안적어도 됨.
int[] score = {55,59,79,80}; // 배열의 생성과 초기화를 동시에 하는 경우
※ 주의 : 생성과 선언을 따로 하는 경우에는 new 타입[ ]을 생략하면 오류난다.
int[] score; // 생성
score = new int[]{55,59,79,80}; // 초기화 따로하는 경우 new 타입[]{값}
배열의 출력
가장 간단하게 출력하는 방법은 Arrays.toString(배열명) 메서드를 사용하는 것이다.
대신 import java.utill.Arrays; 를 추가해야 메서드 사용이 가능하다.
import java.utill.Araays;
int[] score = {55,59,79,80};
System.out.println(Arrays.toString(score));
// 출력값은 아래와 같다
55
59
79
80
배열의 값을 확인할 때도 for문으로 가능하다.
int[] score = {55,59,79,80};
for(int i=0; i < score.length; i++){
System.out.println(score[i]);
}
// 출력값은 아래와 같다
55
59
79
80
※ 주의 : 배열이름을 그대로 출력하면 → 타입@주소 형식으로 출력된다.
(예외 : char배열은 각 요소가 출력)
int[] score = {100, 90, 80, 70};
System.out.println(score);
// 출력값은 아래와 같다
[I@1b6d3586 // 타입@주소 [배열 I타입 @주소
char[] chArr = {'a','b','c'};
System.out.println(chArr);
// 출력값은 아래와 같다
abc // 구분자 없이 요소 출력
'JAVA' 카테고리의 다른 글
애너테이션(annotation) (0) | 2022.12.19 |
---|---|
열거형(enum) (0) | 2022.12.19 |
컬렉션 프레임웍(collections framework) (0) | 2022.12.19 |
객체지향프로그래밍(2) - 상속, Object 클래스 (0) | 2022.12.19 |
객체지향프로그래밍 (0) | 2022.12.08 |