======Ch.06 배열 Array====== =====배열 선언===== | 데이터 타입[] 변수명; | 데이터 타입 변수명[]; | int[] arrInt;\\ int arrInt2[]; double[] arrDouble;\\ String[] arrString; package chapter06; public class ArrEx { public static void main(String[] args) { int[] arrInt; int arrInt2[]; double[] arrDouble; String[] arrString; } } package chapter06; public class ArrEx1 { public static void main(String[] args) { int[] arrInt; int arrInt2[] = null; //System.out.println(arrInt[0]); // 에러 발생 System.out.println(arrInt2[0]); // 에러 발생하지 않음 } } package chapter06; public class ArrEx2 { public static void main(String[] args) { int[] arrInt = new int[5]; // 길이가 5개인 배열 객체 생성 System.out.println(arrInt[0]); } } package chapter06; public class ArrEx3 { public static void main(String[] args) { int[] arrInt = new int[5]; // 길이가 5개인 배열 객체 생성 arrInt[0] = 1; arrInt[1] = 2; arrInt[2] = 3; arrInt[3] = 4; arrInt[4] = 5; } } package chapter06; public class ArrEx4 { public static void main(String[] args) { String[] arrStr = new String[5]; // System.out.println(arrStr[0]); char[] arrChar = new char[3]; System.out.print(arrChar[0]*2); System.out.print('\u0000'*2); } } =====배열 사용===== package chapter06; public class ArrEx5 { public static void main(String[] args) { String[] arrStr = {"홍길동", "이순신", "김유신"}; } } ====배열 사용==== package chapter06; public class ArrEx6 { public static void main(String[] args) { String[] arrStr = {"홍길동", "이순신", "김유신"}; System.out.println("배열의 길이 : "+arrStr.length); } } package chapter06; public class ArrEx7 { public static void main(String[] args) { String[] arrStr = {"홍길동", "이순신", "김유신"}; for (int i=0; i package chapter06; public class ArrEx8 { public static void main(String[] args) { int[] number = new int[100]; // 배열 변수에 대입 for (int i=0; i **로또번호 자동 추출기** package chapter06; public class Lotto { public static void main(String[] args) { int[] lotto = new int[6]; int idx = 0; while (true) { int number = (int)(Math.random()*45)+1; boolean insert = true; for (int i=0; i<=idx; i++) { if (lotto[i] == number) { insert = false; break; } } if (insert == true) { lotto[idx] = number; idx++; } if (idx == 6) break; } for (int i=0; i **args 변수의 배열에 값 입력** {{ :programmer:java:book_source:arg01_1_.png?600 |}} {{ :programmer:java:book_source:arg02.png?600 |}} package chapter06; public class ArrEx9 { public static void main(String[] args) { System.out.println("첫번째 값 : "+args[0]); System.out.println("두번째 값 : "+args[1]); } } ===== 다차원 배열===== package chapter06; public class ArrEx10 { public static void main(String[] args) { // 첫번째 int[][] matrix = new int[3][3]; matrix[0][0] = 1; matrix[0][1] = 2; matrix[0][2] = 3; matrix[1][0] = 4; matrix[1][1] = 5; matrix[1][2] = 6; matrix[2][0] = 7; matrix[2][1] = 8; matrix[2][2] = 9; // 두번째 int[][] matrix2 = {{1,2,3}, {4,5,6}, {7,8,9}}; // 세번째 int[][] matrix3 = { {1,2,3}, {4,5,6}, {7,8,9} }; System.out.println("[첫번째]"); for (int i=0; i package chapter06; public class ArrEx11 { public static void main(String[] args) { int[][][] arrInt = new int[3][3][3]; int value = 0; // 값 대입 for (int i=0; i<=2; i++) { for (int j=0; j<=2; j++) { for (int k=0; k<=2; k++) { arrInt[i][j][k] = value++; } } } // 값 출력 for (int i=0; i<=2; i++) { for (int j=0; j<=2; j++) { for (int k=0; k<=2; k++) { System.out.print(arrInt[i][j][k]+"\t"); } System.out.println(); } } } } package chapter06; public class ArrEx12 { public static void main(String[] args) { int[][] arrInt = new int[3][]; arrInt[0] = new int[] {1}; arrInt[1] = new int[] {2,3}; arrInt[2] = new int[] {4,5,6}; for (int i=0; i =====배열 복사===== package chapter06; public class ArrEx13 { public static void main(String[] args) { // 원본 배열 int[] arrInt = {1,2,3}; // 복사할 배열 int[] arrInt2 = new int[5]; // 복사할 배열에 값 대입 for (int i=0; i package chapter06; public class ArrEx14 { public static void main(String[] args) { // 원본 배열 int[] arrInt = {1,2,3}; // 복사할 배열 int[] arrInt2 = new int[5]; System.arraycopy(arrInt, 0, arrInt2, 2, arrInt.length); // 배열 값 출력 for (int i=0; i package chapter06; import java.util.Arrays; public class ArrEx15 { public static void main(String[] args) { // 원본 배열 int[] arrInt = {1,2,3}; // 복사할 배열 int[] arrInt2 = null; arrInt2 = Arrays.copyOf(arrInt, 5); // 배열 값 출력 for (int i=0; i =====향상된 for 문===== package chapter06; public class ArrEx16 { public static void main(String[] args) { // 배열 int[] arrInt = {1,2,3,4,5}; // 기존 for문을 이용한 출력 for (int i=0; i =====참조자료형===== **값이 아닌 메모리 주소를 비교** package chapter06; public class ReferenceType { public static void main(String[] args) { String name1 = "홍길동"; String name2 = "홍길동"; System.out.println(name1 == name2); } } package chapter06; public class ReferenceType2 { public static void main(String[] args) { String name1 = new String("홍길동"); String name2 = new String("홍길동"); System.out.println(name1 == name2); } } **''==연산자'' 가 아닌 ''equals() 메서드를 사용'' (문자열값 자체를 비교)** package chapter06; public class ReferenceType3 { public static void main(String[] args) { String name1 = new String("홍길동"); String name2 = new String("홍길동"); System.out.println(name1.equals(name2)); } } **배열 객체로 비교** package chapter06; import java.util.Arrays; public class ReferenceType4 { public static void main(String[] args) { // 배열 변수 생성 int[] arr1 = {1,2,3}; int[] arr2 = {1,2,3}; System.out.println("arr1 == arr2 : " + (arr1 == arr2)); int[] arr3 = arr1; System.out.println("arr1 == arr3 : " + (arr1 == arr3)); arr3[0] = 4; System.out.println("arr3[0] : "+arr3[0]); System.out.println("arr1[0] : "+arr1[0]); } } **배열 객체 값을 그대로 받으면서 별개의 주소값을 갖는 참조자료형 만들기** package chapter06; import java.util.Arrays; public class ReferenceType5 { public static void main(String[] args) { // 배열 변수 생성 int[] arr1 = {1,2,3}; int[] arr2 = Arrays.copyOf(arr1, 3); arr2[0] = 4; System.out.println("arr1[0] : "+arr1[0]); System.out.println("arr2[0] : "+arr2[0]); } }