본문 바로가기

공부일지

230926 (Java)

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