gwooden_코린이
java_2차원 배열_221124(4일차) 본문
2차원 배열 예시
(원래는 옆으로 쭉 이어진다.)
a[4][3] - 처음 값이 행이고 두번째 값이 열이다.
예)
i j 일때
arr[5][5]
[0][0] | [0][1] | [0][2] | [0][3] | [0][4] |
[1][0] | [1][1] | [1][2] | [1][3] | [1][4] |
[2][0] | [2][1] | [2][2] | [2][3] | [2][4] |
[3][0] | [3][1] | [3][2] | [3][3] | [3][4] |
[4][0] | [4][1] | [4][2] | [4][3] | [4][4] |
[5][0] | [5][1] | [5][2] | [5][3] | [5][4] |
package 배열2;
public class Sample01 {
public static void main(String[] args) {
int[][] arr = new int[5][5];
int i, j;
int num = 1;
//배열방이 행과 열 2가지로 나뉘어서 for문도
for(i=0; i<5; i++) {
for(j=0; j<5; j++) {
arr[i][j] = num; //i배열방과 j배열방에 num값을 넣는다. 초기 num값은 1이다.
num++; //num의 값을 증가시키지 않으면 배열방에는 1만 들어가게 된다.
}
}
for(i=0; i<5; i++) {
for(j=0; j<5; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
★풀이01
package 배열2;
public class Sample01 {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[][] arr2 = {
{1,2,3,4,5},
{7,8,9,10,11},
{3,4,5,6,7}
};
//위는 배열방 초기값 정해주는것
int[][] arr = new int[5][5];
int i, j;
int num = 1;
//배열방이 행과 열 2가지로 나뉘어서 for문도
for(i=0; i<5; i++) { //옆으로 5씩 증
for(j=0; j<5; j++) {
arr[j][i] = num; //i배열방과 j배열방에 num값을 넣는다. 초기 num값은 1이다.
num++; //num의 값을 증가시키지 않으면 배열방에는 1만 들어가게 된다.
}
}
for(i=0; i<5; i++) {
for(j=0; j<5; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
★풀이02
package 배열2;
public class Sample02 {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[][] arr2 = {
{1,2,3,4,5},
{7,8,9,10,11},
{3,4,5,6,7}
};
int[][] arr = new int[5][5];
int i, j;
int num = 1;
//값을 넣을 자리 선정
for(i=0; i<5; i++) {
for(j=0; j<=i; j++) {
arr[i][j] = num;
num++;
}
}
//출력 자리 선정
for(i=0; i<5; i++) {
for(j=0; j<=i; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
★풀이03
package 배열2;
public class Sample02 {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[][] arr2 = {
{1,2,3,4,5},
{7,8,9,10,11},
{3,4,5,6,7}
};
int[][] arr = new int[5][5];
int i, j; //반복용 변수
int num = 1; //배열안에 들어가는 숫자
int x = 0, y=-1; //배열방 변수
int a = 5; //값 넣을 때 필요한 반복 횟수
int s = 1; //스위치용 변수
//값을 넣을 자리 선정
for(i=0; i<5; i++) {
for(j=0; j<a; j++) { // 계속 5번 반복하게
y = y + s;
arr[x][y] = num;
num++;
}
a--;
//위에 첫줄이 끝났고 num 값은 최종적으로 +이고 a값은 5 y는 4로 알맞게 떨어진다.
//반복 횟수를 줄여야 되므로 a--;를 넣고
for(j=0; j<a; j++) {
x = x + s;
arr[x][y] = num;
num++;
}
s = s * -1;
}
for(i=0; i<5; i++) {
for(j=0; j<5; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
★예제04
package 배열2;
public class Sample03 {
public static void main(String[] args) {
int[] arr1 = {1,2,3}; //원본 배열
int[] arr2 = new int[5]; //복사할 배열
for(int i=0; i<3; i++) {
arr2[i] = arr1[i];
}
for(int i=0; i<5; i++) {
System.out.print(arr2[i] + " ");
}
}
}
package 배열2;
public class Sample03 {
public static void main(String[] args) {
int[] arr1 = {1,2,3}; //원본 배열
int[] arr2 = new int[5]; //복사할 배열
System.arraycopy(arr1, 0, arr2, 2, 3);
//arc : 복사할 배열
//srcPos : 몇 번 방에 값부터 시작해서 복사하여 넣을 것인지
//dest : 어디에 복사해서 넣을건지
//destPos : 몇 번 방 부터 복사하여 집어 넣을건지
//length : 몇 개를 넣을건지 (.lenfth를 사용하면 배열방이 몇개가 있는지 자동으로 확인하고 전체 선택됨)
for(int i=0; i<5; i++) {
System.out.print(arr2[i] + " ");
}
}
}
package 배열2;
import java.util.Arrays;
public class Sample04 {
public static void main(String[] args) {
int[] arr1 = {1,2,3};
int[] arr2 = null;
arr2 = Arrays.copyOf(arr1, 5);
//arg0 : 복사할 배열
//arg1 : 복사할 배열을 5칸 짜리로 배열로 생성
for(int i=0; i<5; i++) {
System.out.print(arr2[i] + " ");
}
}
}
'java > 4일차' 카테고리의 다른 글
java_객체지향 클래스_221124(4일차) (0) | 2022.11.24 |
---|---|
java_난수출력_221124(4일차) (0) | 2022.11.24 |
java_정렬_221124(4일차) (0) | 2022.11.24 |
java_배열_221124(4일차) (0) | 2022.11.24 |