2차원 배열
- 1차원 배열을 배열 형태로 가지고 있는 배열
- 열의 개수가 일정한 2차원 배열을 정방형이라고 한다. 직사각형 모양
- 배열의 길이는 2가지로 구한다. 배열의 수는 arr.length로 구하고, 각 배열의 길이는 arr[0].length를 사용한다.
- 배열에 값을 저장하기 위해서는 행과 열을 모두 지정 해야 한다.
- 2x4의 2차원 배열에 1~8의 값을 넣고 출력하기
public class Ex01_Array {
public static void main(String[] args) {
int[][] arr = new int[2][4];
int count =1;
for (int i=0; i<arr.length; i++) {
for (int j=0; j<arr[i].length; j++) {
arr[i][j] = count;
count++;
System.out.println(arr[i][j]);
}
}
}
}
테스트
- 2차원 배열을 만들고 2차원 배열 내부에 2~9단의 결과를 모두 담고 출력하기
public class Test01_Array {
public static void main(String[] args) {
int[][] multi = new int[8][9];
for (int i=0; i<multi.length; i++) {
for (int j=0; j<multi[i].length; j++) {
multi[i][j] = (i+2) * (j+1);
System.out.println((i+2)+" x "+(j+1)+" = " + multi[i][j]);
}
}
}
}
비 정방형 2차원 배열
- 2차원 배열 내부의 1차원 배열의 크기가 각자 다른 2차원 배열
public class Ex02_Array {
public static void main(String[] args) {
int [][] arr = new int[3][];
int[] elementArr1 = new int[2];
int[] elementArr2 = new int[3];
arr[0] = elementArr1;
arr[1] = elementArr2;
arr[2] = new int[4];
int count = 1;
for (int i=0; i<arr.length; i++) {
for (int j =0; j<arr[i].length; j++) {
arr[i][j]=count++;
System.out.print(i+""+j+":"+arr[i][j] + " ");
}
System.out.println();
}
}
}
배열을 직접 입력하기
- 배열을 new로 초기화 하지 않아도 {}를 이용하여 초기화 할 수 있다.
- arr2 각각 2개의 크기를 가지는 1차원 배열이 3개 있다.
- 2차원을 다시 만들지 않고 1,2번 1차원 배열 크기를 3으로 만들기
public class Ex03_Array {
public static void main(String[] args) {
int[] arr = { 2, 4, 6, 8, 10, 12, 14, 16, 18 };
System.out.println(arr.length);
arr = new int[] { 3, 4 };
System.out.println(arr.length);
int[][] arr2 = { { 0, 0 }, { 0, 0 }, {0,0} };
arr2[0] = new int[3];
arr2[1] = new int[] {0,0,0};
}
}
테스트
- 강아지, 진돗개, 불독, 시츄의 문자열을 요소로 가지는 배열을 만들고 출력
- 페르시안, 고양이, 노르웨이의 문자열을 요소로 가지는 배열을 만들고 출력
- 두 배열을 요소로 가진 배열을 만들고 출력
public class Test02_Array {
public static void main(String[] args) {
String[] dogs = {"강아지", "진돗개", "불독", "시츄"};
String[] cats = {"페르시안", "고양이", "노르웨이"};
for (int i=0; i<dogs.length; i++) {
System.out.println(dogs[i]);
}
for (int i=0; i<cats.length; i++) {
System.out.println(cats[i]);
}
String[][] animals = new String[2][];
animals[0] = dogs;
animals[1] = cats;
for (int i=0; i<animals.length; i++) {
for (int j=0; j<animals[i].length; j++) {
System.out.print(animals[i][j] + " ");
}
System.out.println();
}
}
}
변수의 내용물의 스왑
- 코드로 두 변수를 바꿔넣기
- 배열을 오름차순, 내림차순으로 정렬하기(중복 없음)
public class Ex04_Swap {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
System.out.println(num1+" "+num2);
int tempNum = num1;
num1 = num2;
num2 = tempNum;
System.out.println(num1+" "+num2);
int[] arr = { 3,5,7,9,1,2,4,10};
int[] tempArr = new int[arr.length];
for (int i=0; i<tempArr.length; i++) {
int max = 0;
int num=0;
for (int j=0; j<arr.length; j++) {
if (arr[j]>max) {
max = arr[j];
num = j;
}
}
tempArr[i] = max;
arr[num] = 0;
}
for (int i=0; i<arr.length;i++) {
arr[i] =tempArr[i];
System.out.print(arr[i]+" ");
}
}
}
'공부일지' 카테고리의 다른 글
231004 (HTML) (0) | 2023.10.04 |
---|---|
230927 (HTML) (0) | 2023.09.27 |
230926 (HTML) (0) | 2023.09.26 |
230925 (Java) (0) | 2023.09.25 |
230925 HTML (0) | 2023.09.25 |