"배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것"
int[ ] score = new int[5];
배열을 다루기 위한 참조변수의 선언
타입[ ] 변수이름; //Java
int[ ] score;
String[ ] name;
타입 변수이름[ ]; //C언어
int score[ ];
String name[ ];
타입[ ] 변수이름; //배열을 선언(배열을 다루기 위한 참조변수 선언)
변수이름 = new 타입[길이]; //배열을 생성(실제 저장공간을 생성)
//배열의 인덱스
int[] score; //배열 score를 선언(참조변수)
score = new int[5]; // 배열의 생성(int저장공간 x 5)
int[] score = new int[5]; //한 줄로
int[] arr = new int[5]; //길이가 5인 int 배열
int tmp = arr.length; //arr.length의 값은 5이고 tmp에 5가 저장된다.
//배열의 모든 요소 출력
int[] score = new int[6];
for(int i = 0; i < score.length; i++)
System.out.println(score[i]);
배열의 각 요소에 처음으로 값을 저장하는 것.
배열은 0으로 자동 초기화 됨.
int[] score = { 50, 60, 70, 80, 90 }; //선언과 초기화를 한줄로 하는 경우
int[] iArr = { 100, 95, 80, 70, 60 };
System.out.println(iArr); //에러. 다른 값이 출력됨
//int배열 출력 1번 방법
for(int i=0; i<iArr.length; i++) { //배열의 요소를 순서대로 하나씩 출력
System.out.println(iArr[i]);
}
//int배열 출력 2번 방법
System.out.println(Arrays.toString(iArr));
//문자는 바로 출력 가능
char[] chArr = { 'a', 'b', 'c', 'd' };
System.out.println(chArr); //OK. abcd가 출력
System.out.println(Arrays.toString(chArr)); //OK.
총합과 평균 : 배열의 모든 요소를 더해서 총합과 평균을 구한다.
--예제5--
최대값과 최소값 : 배열의 요소 중에서 제일 큰 값과 제일 작은 값을 찾는다.
--예제5--
섞기(Shuffle) 배열의 요소의 순서를 반복해서 바꾼다.(숫자 섞기, 로또 번호 생성)
--예제 5-4--
--예제 5-5--
String[] name = new String[3]; //3개의 문자열을 담을 수 있는 배열을 생성한다.
//[예제5-6]
String[] name = { "Kim", "Park", "Yi" };
String[] strArr = {"가위", "바위", "보"};
System.out.println(Arrays.toString(strArr));
for(int i=0;i<10;i++) {
int tmp = (int)(Math.random()*3);
System.out.println(strArr[tmp]);
}
커맨드 라인에 입력한 값이 문자열 배열에 담겨서 전달된다.
테이블 형태의 데이터를 저장하기 위한 배열
int[][] score = new int[4][3]; //4행 3열의 2차원 배열을 생선한다.
//2차원 배열의 인덱스
int[][]score = new int[4][3];
//2차원 배열의 초기화
int[][] arr = { {1, 2, 3}, {4, 5, 6} };
int[][] arr = { {1, 2, 3}, //직관적으로
{4, 5, 6}
};
String str = "ABCDE";
char ch = str.charAt(3); //문자열 str의 4번째 문자 'D'를 ch에 저장
String str = "012345";
String tmp = str.substring(1, 4); // str에서 index범위 1~4의 문자 1,2,3을 반환(4는 안들어감)
System.out.println(tmp); // "123"이 출력된다.
String str = "ABCDE";
char ch = str.charAt(4);
String str2 = str.substring(1,4);
String str3 = str.substring(1);
String str4 = str.substring(1, str.length());
문자열의 비교와 출력 - equals(), toString()
Math 클래스 : 수학관련 메서드 모아놓음.
int[] arr = {0,1,2,3,4,};
int[][] arr2D = {{11,12}, {21,22}};
System.out.println(Arrays.toString(arr)); //[0, 1, 2, 3, 4] (1차원)
System.out.println(Arrays.deepToString(arr2D)); //[[11,12], [21,22]] (2차원 이상)
String[][] str2D = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
String[][] str2D2 = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
System.out.println(Arrays.equals(str2D, str2D2)); //false (1차원배열 비교)
System.out.println(Arrays.deepEquals(str2D, str2D2)); //true (2차원 이상 배열 비교)
int[] arr = {0,1,2,3,4};
int[] arr2 = Arrays.copyOf(arr, arr.length); //arr2=[0,1,2,3,4]
int[] arr3 = Arrays.copyOf(arr, 3); //arr3=[0,1,2]
int[] arr4 = Arrays.copyOf(arr, 7); //arr4=[0,1,2,3,4,0,0]
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); //(arr,from,to) arr5=[2,3], 4는 불포함
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); //(arr,from,to) arr6=[0,1,2,3,4,0,0], 4는 불포함
int[] arr = {3,2,0,1,4};
Arrays.sort(arr)); //배열 arr을 정렬한다.
System.out.println(Arrays.toString(arr))); //[0,1,2,3,4]