728x90
배열(Array)이란?
배열은 다수의 동일한 데이터형을 하나의 변수로 묶은 것인데, 다량의 동일한 데이터 타입을 다룰 때 매우 편리하다.
배열의 선언도 new 연산자를 사용해서 int[ ] a(OR int a [ ]) = new int[4]; 식으로 하는데 예전방식이다.
여기서 int[ ]는 배열 요소들의 데이터 타입이고 a가 배열_변수_명이며, int[4]는 크기가 4인 배열이라는 뜻이다.
앞으로 이 배열은 배열 변수 a로 사용하면 요소 4개가 함게 묶여서 사용될 수 있다.
배열 요소 하나 하나는 일반 변수처럼 참조와 대입이 가능하다.
배열의 요소의 첨자는 0부터 시작하기 때문에 크기가 4인 배열의 요소에 접근하려면
순서적으로 a[0], a[1], a[2], a[3]으로 해주어야 한다.
배열의 선언과 동시에 초기화 한다면 { } 안에 요소를 열거한다.
int [ ] a = new int [] {1, 2, 3, 4};
OR
int[ ] a = {1, 2, 3, 4};
==> a[0]=1, a[1]=2, a[2]=3, a[3]=4 식으로 index를 사용해서 배열의 요소 값에 접근할 수 있다.
package Java04;
public class Test08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int c[] = {1, 2, 3, 4}; // 1,2,3,4 로 4개의 요소를 가지고 있는 배열 c
System.out.println(c[0]);
System.out.println(c[1]);
System.out.println(c[2]);
System.out.println(c[3]);
System.out.println(c[4]);
/* System.out.println(c[4]);=>
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
at Java04.Test08.main(Test08.java:12)*/
}
}
다차원 배열
표와 같이 행과 열이 있는 경우에는 다차원 배열이 편리하다. 1차원 배열은 요소 수가 행으로(옆으로) 늘어가지만
2, 3차원 배열에서는 종으로 요소 수가 늘어갈 수 있다.
** 자바의 다차원 배열에서는 행의 수에 관심이 있고, 열에 대해서는 관심이 없다. ==> 행열에 대해서 정밀하게 다루려면 Numpy를 사용하면 된다.
배열의 종류
1차원 배열 | int [ ] a = new int[3]; | x 방향 요소 개수 |
2차원 배열 | int [ ] [ ] a = new int [2][3]; | y 방향과 x방향 요소 개수 |
3차원 배열 | int [ ] [ ] [ ] a new int[2][2][3]; | z 방향, y 방향, x 방향 요소 개수 |
다차원 배열 내의 요소 참조와 값 대입
int[ ][ ] a = { {10, 20, 30},
{40, 50, 60}
}; 식으로 한다.
package Java04;
public class Test09 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][]a= { {10,20,30}, // 2차원 배열 선언과 요소들 2행x3열
{40,50,60}
};
System.out.println(a[0][2]); //1행 3열
// int[]a = {10, 20, 30, 40} //1차원 배열 선언과 요소들
a[0][2] = 0; // 원래 요소의 값 30을 0으로 바꿔줌
System.out.println(a[0][0]); //1행 1열
System.out.println(a[1][2]); //2행 3열
System.out.println(a[0][2]); //1행 3열
}
}
package Java04;
public class Test10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][]a= { {10,20},
{30,40},
{50,60},
};
System.out.println("a[0][0]=" + a[0][0] + ", a[0][1]" + a[0][1]);
System.out.println("a[1][0]=" + a[1][0] + ", a[1][1]" + a[1][1]);
System.out.println("a[2][0]=" + a[2][0] + ", a[2][1]" + a[2][1]);
}
}
package Java04;
public class Test11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = new int[4]; //배열 a는 4개의 요소를 가지고 있다.
int b = a.length; // 배열요소의 a를 b에 넣는다.
System.out.println("b의 요소 개수는? : "+b + "개");
int[][]c = { {1,2,3}, // 다차원 배열
{4,5}
};
int d = c.length; // 배열요소의 c를 d에 넣는다.
System.out.println("d의 행의 개수는? "+d + "개");
int e = c[0].length;
System.out.println("1행의 요소 개수는? : " + e + "개");
int f = c[1].length;
System.out.println("2행의 요소 개수는? : " + f + "개");
}
}
package Java05;
public class Test02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = {22,19,72,129,34};
int b = 5; // 위 배열의 요소 개수
int i, j, k; // 변수 선언
System.out.println("데이터 표시하시오");
for (i=0; i<b; i++) { //b는 배열의 요소 개수, a.length로 대체가능
System.out.print(a[i]+" ");
}
System.out.println("\n-----------------");
for (j=0; j<b-1; j++) { //b-1은 정렬이 끝난 인덱스 제외
for(i=j+1; i<b; i++) { //j+1은 정렬이 끝난 인덱스 제외
if(a[j] > a[i]) {
k = a[j]; //치환
a[j] = a[i];
a[i] = k;
}
}
}
System.out.println("정렬한 것 표시");
for (i=0; i<b; i++) {
System.out.print(a[i] + " ");
}
}
}
'일단 해보는 코딩 > Java' 카테고리의 다른 글
[Java] Break/Continue 문 (0) | 2022.07.25 |
---|---|
[Java] 자바 난수(random) 함수 및 seed 설명 (0) | 2022.07.22 |
[Java] Switch ~ case 문, For문 (0) | 2022.07.21 |
[Java] If문, else if~, (0) | 2022.07.21 |
[Java] 스캐너(Scanner) 예제모음 (0) | 2022.07.20 |