관리 메뉴

공부가 싫은 개발자

[JAVA] 배열 본문

코딩테스트

[JAVA] 배열

우엉엉 2025. 10. 17. 14:09

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