📋 1차원 배열
{ |
1, |
3, |
5, |
7, |
9, |
} |
주소(index) |
0 |
1 |
2 |
3 |
4 |
|
요소(element) |
1 |
3 |
5 |
7 |
9 |
|
package section07;
public class Ex0701 {
public static void main(String[] args) {
// 배열 정의(literal)
int[] oddArr = { 1, 3, 5, 7, 9 };
int evenArr[] = { 2, 4, 6, 8, 10 };
System.out.println("oddArr\\t\\t: " + oddArr);
/*
* [I@2d363fb3
* [는 배열을 의미
* I는 정수형(int)를 의미
* 2d363fb3는 배열 객체의 해시코드를 의미(16진수로 표현)
*/
System.out.println("oddArr.length\\t: " + oddArr.length); // 배열 길이
System.out.print(oddArr[0]);
System.out.print(' ');
System.out.print(oddArr[1]);
System.out.print(' ');
System.out.print(oddArr[2]);
System.out.print(' ');
System.out.print(oddArr[3]);
System.out.print(' ');
System.out.print(oddArr[4]);
System.out.println();
for (int i = 0; i < oddArr.length; i++) {
System.out.print(oddArr[i]);
System.out.print(' ');
}
}
}
package section07;
import java.util.Arrays;
public class Ex0702 {
public static void main(String[] args) {
// 배열 정의(object)
int[] oddArrObject;
// oddArrObject = { 1, 3, 5, 7, 9 }; // 문법 에러
oddArrObject = new int[] { 1, 3, 5, 7, 9 };
// 빈 배열 정의
int[] intArr = new int[5];
System.out.println("before - Arrays.toString(intArr)\\t: " + Arrays.toString(intArr));
intArr[0] = 1;
intArr[1] = 2;
intArr[2] = 3;
intArr[3] = 4;
intArr[4] = 5;
intArr[5] = 6; // ArrayIndexOutOfBoundsException
System.out.println("after - Arrays.toString(intArr)\\t\\t: " + Arrays.toString(intArr));
}
}
✅ 배열의 특징
- 배열 선언 시 크기 지정
- 배열 선언 후 공간 크기를 추가하거나 삭제 불가
- 지정 자료형 값만 저장 가능
✅ 배열의 초기값
자료형 |
배열 초기값 |
정수 |
0 |
실수 |
0.0 |
문자 |
‘’ |
객체 |
null |
package section07;
public class Ex0703 {
public static void main(String[] args) {
char[] words = { '1', 'J', '2', 'A', '3', 'V', '4', 'A' };
String resultWord = "";
System.out.println((int) 'A'); // 65
System.out.println((int) 'Z'); // 69
// for (int i = 0; i < words.length; i++) {
// int word = words[i];
// if (word >= 65 && word <= 90) {
// resultWord += (char) word;
// }
// }
// for each
for (int word : words) {
if (word >= 65 && word <= 90) {
resultWord += (char) word;
}
}
System.out.println(resultWord); // JAVA
}
}
📋 배열의 정렬
package section07;
import java.util.Arrays;
import java.util.Collections;
public class Ex0704 {
public static void main(String[] args) {
// int[] numbers = { 30, 10, 50, 20, 40 };
Integer[] numbers = { 30, 10, 50, 20, 40 }; // 내림차순 정렬에서는 Wrapper 클래스를 사용해야 함
// 정렬 전 배열 출력
System.out.println("정렬 전 배열\\t\\t: " + Arrays.toString(numbers));
// 배열 정렬 (오름차순)
Arrays.sort(numbers);
// 정렬 후 배열 출력
System.out.println("정렬 후 배열(오름차순)\\t: " + Arrays.toString(numbers));
// 배열 내림차순 정렬
Arrays.sort(numbers, Collections.reverseOrder());
// 정렬 후 배열 출력
System.out.println("정렬 후 배열(내림차순)\\t: " + Arrays.toString(numbers));
}
}
📋 얕은 복사/깊은 복사