Array ( 배열 )
목적 : 일괄처리시 사용
└한꺼번에 모아서 처리
1.일차원 배열
- '열'로만 구성된 배열
- 기본형식, 참조형형식 두가지로 사용할 수 있다.
- 방의 갯수 : 배열명.length
- 모든 데이터형으로 배열을 만들 수 있다.
1) 참조형 형식의 사용
1.1)선언
데이터형[] 배열명 = null;
int[] arr=null
String[] arr=null;
1.2)생성 : heap생성,모든 방의 값이 초기화된다, 방의 갯수 설정, 고정길이형(선언시 설정한 방의 갯수가 변경되지않는다.)
배열명 = new 데이터형[방의 갯수]
arr = new int[5];
arr = new String[5];
1.3) 값 할당
배열명[방의번호] = 값;
arr[0] = 10;
arr[1] = 20;
1.4)값 사용
배열명[방의번호]
arr[0] (값 10) , arr[1] (값은 20);
for(int i =0;i< arr.length;i++){
System.out.pritln(arr[i]);
}
2) 기본형 형식의 사용
- new를 사용하지 않고 배열을 쓸 때
- 배열에 들어가는 값을 모두 알 때 사용한다.
2.1 ) 문법 : 데이터형[ ] 배열명 = {값.....};
int[] arr = { 10, 20 , 30, 40 } ;
3) 최고정수 구하기
처음방을 저장하고 옆방의 값을 꺼내와서 , 변수에 들어있는 값과 비교하여 옆방의 값이 크다면
변수에 있는 값이 최고값이 아니므로 옆방의 값을 변수에 넣고 비교를계속 해나간다.
4) 선택정렬
처음방과 옆방을 비교하여 옆방보다 작으면 옆방과 처음 방의 값을 바꾼다.
2. 2차원 배열
- 행과 열로 구성된 배열
- 행의 수를 알 때: 배열명.length
- 열의 수를 알 때 : 배열명[행의번호].length
- 모든 행의 갯수는 동일하다.
1)참조형형식 사용법(값을 개발자가 모르는 경우)
1.1) 선언
데이터형[행][열] 배열명 = null; // 권장되는 방법
데이터형 배열명[행][열] = null;
ex ) int [][] arr = null;
1.2) 생성 : 모든 방의 값은 초기화 된다.
배열명 = new 데이터형[행의수][열의수]
ex ) arr=new int[2][3];
1.3) 값할당 : 행과 열을 모두 사용
배열명[행의번호][열의번호] = 값;
ex ) arr[0][0] =10 ; arr[1][2] =20;
1.4) 값사용 : 행과 열을 모두 사용
배열명[행의번호][열의번호]
ex ) System.out.println(arr[0][0]); =>10출력
System.out.println(arr[1][2]); =>20출력
1.5) 모든 방의 값 출력
1.5.1) 일반 for문
for(int i =0; i < 배열명.length ; i++){ //행의 대한 for
for(int j=0; j<배열명[i].length;j++){//열에 대한 for
System.out.print(배열명[i][j]\t);
}
System.out.println();
}
ex ) for(int i =0; i < arr.length ; i++){ //행의 대한 for
for(int j=0; j<arr[i].length;j++){//열에 대한 for
System.out.print(arr[i][j]\t);
}
System.out.println();
}
1.5.2) 개선된 for문
for(int[] arr1 : 배열명){
for(int value : arr1) {
System.out.print(value\t);
}
}
ex ) for(int[] arr1 : arr){
for(int value : arr1) {
System.out.print(value\t);
}
}
소스보기
결과보기
2)기본형 형식의 사용
행 구분 괄호로 한행에 들어갈 열의 갯수 설정 ( 아래의 큰 괄호를 행구분 괄호라고 한다. )
문법)
데이터형[]][] 배열명 = { { 값....},{ 값....},{ 값....},{ 값....},{ 값....}, .....}
int [][] arr= { {10,20,30},{40,50,60} } ; //2행 3열
10 |
20 |
30 |
40 |
50 |
60 |
소스
결과
3. 삼차원배열
- 면,행,열로 구성된 배열
- 면의 수 : 배열명.length
- 행의 수 : 배열명[면의 번호].length
- 열의 수 : 배열명[면의 번호][행의 번호].length
- 삼차원 배열의 한면은 이차원 배열로 되어있고
- 이차원 배열의 한행은 일차원 배열로 되어있다.
- 일차원 배열의 한열은 단일 데이터형으로 되어있다.
1) 참조형 형식 사용
1.1)선언
데이터형[면][행][열] 배열명=null;
int[][][] arr= null;
1.2)생성: 모든방의 값이 초기화
배열명 = new 데이터형[면][행][열];
arr = new int[2][2][3];
1.3) 값 할당
배열명 [면][행][열]=값;
1.4) 값사용
배열명[면][행][열];
1.5) 모든 방의 값 출력
for(int i = 0 ; i < 배열명.length ; i++) { // 면
for(int j = 0; j < 배열명[i].length ; j++ ) { //행
for(int k = 0 ; k < 배열명[i][j].length ; k++){//열
System.out.println( 배열명 [i][j][k] );
}
}
}
소스보기
결과
2) 기본형 형식 사용
- 면 구분 괄호(빨간색), 행구분괄호(파란색)를 준다.
데이터형 [][][] 배열명 = { { {값.....},{값.....}, {값.....} }, { {값.....},{값.....}, {값.....} }, { {값.....},{값.....}, {값.....} } }
4.가변배열
행 마다 열의 갯수가 다른 배열
이차원 배열 형식으로 생성
행의 수 : 배열명.length
열의 수 : 배열명[행].length
1)참조형 형식
1.1)선언
데이터형[][] 배열명 =null;
int[][] arr=null;
1.2)생성 주의 : 열의 갯수를 설정하지 않는다.
배열명 = new int[갯수][];
arr=new int [4][];
1.3)행마다 열을 생성
배열명[행의번호] = enw 데이터형[열의수];
arr[0] = new int[3];
arr[1] = new int[]{1,2,3,4,5};
arr[2] = new int[]{1,2,3,4};
1.4)값 할당
배열명[행의번호][열의번호]=값;
1.5) 값 사용
배열명[행의번호][열의번호]
1.6) 모든 값 출력
for(int i =0 ; i < arr.length ; i++ ){
for(int j =0 ; j <arr[i].length ; j++){
System.out.printf( "[%d][%d]:%d\t",i,j,arr[i][j]);
}
System.out.println();
}
2)기본형 형식
데이터형[][] 배열명={ { 값...}, {값..} }
행구분 괄호 사의 값의 갯수가 다르면 가변배열이됩니다.
소스코드
결과
'IT > JAVA' 카테고리의 다른 글
[JAVA] 유용한 클래스들 (0) | 2018.04.10 |
---|---|
[JAVA] class의 종류 (0) | 2018.04.06 |
[JAVA] Call by Value & Call by Reference (0) | 2018.03.30 |
[JAVA] CLASS 만들기 ( 복습 ) (0) | 2018.03.30 |
[JAVA] OOP(Object Oriented Programming) / 객체지향 (0) | 2018.03.29 |