공부가 싫은 개발자
[JAVA] 배열 본문
1. 배열은 고정 크기
- 배열은 크기 변경 불가
- 크기를 유동적으로 바꾸고 싶다면 ArrayList 사용
2. 기본값 자동 초기화
- int[] → 0
- boolean[] → false
- String[] → null
3. 정렬
- Arrays.sort(arr)
- 내림차순은 Integer[]로 변환 후 Collections.reverseOrder() 사용
Integer[] arr = {5, 2, 9};
Arrays.sort(arr, Collections.reverseOrder());
4. 복사와 슬라이싱
- Arrays.copyOf(): 앞에서부터 원하는 길이만큼 복사
- Arrays.copyOfRange(arr, from, to): 슬라이싱(from, 포함, to 미포함)
5. 출력
- Arrays.toString(arr)
System.out.println(Arrays.toString(arr));
6. 배열 뒤집기
- 직접 구현하거나 List로 변환 후 Collections.reverse()
Collections.reverse(Arrays.asList(arr)); // arr은 Integer[]여야 함
7. 검색
- Arrays.binarySearch(arr)
- 반드시 정렬된 배열에서만 사용
- 없으면 음수 반환
8. 비교
- Arrays.equals(): 값 비교, 주소 비교 아님
9. 배열에서 리스트 변환
- int[] 일 때
- Arrays.stream(arr).boxed().collect(Collectors.toList())
- 가변 리스트 (ArrayList)
- String[], Integer[] 일 때
- Arrays.asList(arr)
- 고정 크기 리스트 (크기 변경 불가)
10. 시간복잡도
| 연산 | 시간 복잡도 |
| 배열 순회 | O(n) |
| 정렬 | O(n log n) |
| 이진 탐색 | O(log n) |
| 슬라이싱 | O(k), k는 슬라이스 길이 |
'코딩테스트' 카테고리의 다른 글
| [JAVA] Stack (0) | 2025.10.17 |
|---|---|
| [JAVA] Queue (0) | 2025.10.17 |
| [JAVA] Set (0) | 2025.10.17 |
| [JAVA] Map (0) | 2025.10.17 |
| [JAVA] Collections (0) | 2025.10.17 |