배열 : 같은 타입의 변수를 하나로 묶어서 다루는 것
많은 양의 값(데이터)을 다룰 때 유용하다.
//=> 타입, 변수 이름 뒤 대괄호[]를 붙여 배열을 선언한다
//선언방법
타입[]변수이름;
ex) int[] score;, String[] name;
타입 변수이름[];
ex) int score[]; String name[];
int[]score; //배열을 선언한다.
score = new int[5]; //배열을 생성한다.
//=> 위의 두문장을 하나로 만들기
int[]score = new int[5];
배열이름.length로 길이를 표현한다.
int[] score={100,90,80,70,60,50}; for(int i=0; i<score.length; i++) { System.out.println(score[i]) } // =(i<6)
'[]'의 개수가 차원의 수를 의미
//선언방법
타입[][] 변수이름;
ex) int[][] score;
타입 변수이름[][];
ex) int score[][];
타입[] 변수이름[];
ex) int[] score[];
int[][] score=new int[5][3];
//5행 3열의 2차원 배열을 생성한다.
int[][]score={
{100,100,100}
{ 10, 10, 10}
{ 20, 20, 20}
{ 40, 40, 40}
{ 50, 50, 50}
}
배열은 한 번 생성하면 크기를 변경할 수 없기 때문에
더 많은 저장 공간이 필요하면 큰 배열을 새로 만들어 이전 배열 값을 복사해야 한다.
int[] number={1,2,3,4,5};
int[] newNumber=new int[10];
for(int i=0; i<numver.length;i++) {
newNumber[i]=number[i];
}
//배열 number의 값을 newNumber에 저장한다.
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
//예시
//arrayNumber를 newArrayNumber에 복사해 저장
public static void main(String[] args) {
String[] arrayNumber={"java", "array", "copy"};
String[] newArrayNumber=new String[5];
System.arraycopy(arrayNumber, 0, newArrayNumber, 0, arrayNumber.length);
for(int i=0; i<newArrayNumber.length; i++) {
System.out.print(newArrayNumber[i]+",");
}
}
for (타입 변수이름 : 배열이나 컬렉션이름) {
배열의 길이만큼 반복적으로 실행하려 하는 명령문;
}
명시한 배열이나 컬렉션의 길이만큼 반복되어 실행됩니다. 루프마다 각 요소는 명시한 변수의 이름으로 저장되고, 명령문에서 이 변수를 사용해 각 요소를 참조할 수 있다.
Enhanced for문은 요소를 참조할 때만 사용하는 게 좋고 요소값을 변경하는 작업에는 적합하지 않다.
//Enhanced for를 사용해 각 배열요소의 값을 출력해보는 예시
int[] arr=new int[]{1,2,3,4,5};
for(int e:arr){
System.out.print(e+" ");
} //출력값 : 1,2,3,4,5