- 배열의 선언 == 배열을 다루기 위한 참조변수의 선언
타입[] 변수이름 : int[] score; 타입 변수이름[] : int score[];
- 배열의 생성
변수이름 = new 타입[길이];
- 생성과 선언 동시에
타입[] 변수이름 = new 타입[길이];
: 해당 타입, 길이의 배열을 생성하고 참조변수가 이를 가리킨다
: 이 때 초기화도 동시에 한다면 new 타입[]을 생략할 수 있다.
int[] arr = {1,2,3,4,5,6};
for(int i=0;i<arr.length;i++) {
System.out.printf(arr[i]+" ");
}
System.out.println(Arrays.toString(arr));
: Arrays.toString()은 배열의 모든 요소를
'[ 요소1, 요소2, 요소3, ... ]' 형태의 문자열로 반환한다.
System.arraycopy(src, srcPos, dest, destPos, length)
- src : 복사하려는 원본 / srcPos : 원본의 어느위치부터 읽어올지
- dest : 복사 목적지가 되는 배열 / destPos : 복사를 시작할 위치
- length : 복사 할 데이터의 길이
public static void main(String args[]) {
int[] numArr = new int[10];
//임의의 수 저장
for( int i=0 ; i< numArr.length ; i++) {
numArr[i] = (int)(Math.random()*10);
System.out.print(numArr[i]);
}
System.out.println();
for(int i=0;i<numArr.length-1;i++) {
boolean Changed = false;
for( int j=0;j<numArr.length-1-i;j++) {
if(numArr[j]>numArr[j+1]) {
int tmp = numArr[j];
numArr[j] = numArr[j + 1];
numArr[j + 1] = tmp;
Changed = true;
}
}
if(!Changed) break;
}
for(int k=0;k<numArr.length;k++) {
System.out.print(numArr[k]);
}
System.out.println();
}
String배열은 기본형배열이 아닌, 객체의 주소가 저장 돼 있는 참조형 배열이다.
프로그램 실행 시, 클래스명 뒤에 공백으로 구분한 여러개의 문자열을 String 배열로 전달 할 수 있음
-> 클래스의 main메소드의 매개변수인 args에 전달 됨!
-> 이는 String 배열이므로 args[index] 형태로 접근 가능
2차원 배열은 '배열의 배열' 형태로 구성되어 있다.
"각 행을 가리키는 참조변수들의 배열 형태"
→ arr.length 는 행의 개수를 반환 / arr[i].length 가 열의 개수를 반환
2차원배열의 각 원소에 접근하려면 이중for문 사용
for( int[] tmp : score ) { //배열의 1차원( 행의 주소 가리키는 참조변수 )
for( int i : tmp ) { // 배열의 2차원( 각 원소 )
sum+=i;
}
}
자바에서의 다차원배열은 '배열의 배열' 형태이기 때문에
각 행마다 길이가 다른 유동적인 배열을 생성할 수 있다.
int[][] score = new int[4][] // 두번째 차원의 길이를 미정으로 남기기 score[0] = new int[4]; //각 행마다 길이 다름 score[1] = new int[1]; score[2] = new int[3]; score[3] = new int[5];
꼭 이렇게 따로따로 생성하지 않아도 된다.
생성과 초기화를 동시에 하는 것도 가능하기 때문int[][] score = { {1,2,3} , {10,10,10,10,10] , {200,300] };