Arrays 유용 메서드 정리

2025. 4. 26. 18:06·Code Odyssey

👉 1. Arrays 유용 메서드 요약 정리

copyOfRange 여러 요소 중 일부 범위만 복사
copyOf 원본 범위를 원하는 길이로 복사
sort 정렬 (기본 오름차순 정렬)
sort(, Comparator) 사용자 정의 기준으로 정렬
equals 두 배열이 같은지 비교
toString 배열을 문자열로 변환
fill 배열 특정 값으로 채워넣기
binarySearch 정렬된 배열에서 지정 값 검색

📌 2. Arrays 메서드 별 사용 및 주의사항

▪ Arrays.copyOfRange(T[] original, int from, int to)

  • 기능 : 배열의 일부분을 복사해서 새로운 배열을 만듬.
    (from 인덱스 포함, to 인덱스 미포함)
int[] arr = {1, 2, 3, 4, 5};
int[] newArr = Arrays.copyOfRange(arr, 1, 4); // [2, 3, 4]

Arrays.copyOf(T[] original, int newLength)

  • 기능 : 배열을 원하는 길이만큼 복사.
    • 원본보다 길면 남는 부분은 타입 기본값(예: int - 0 / boolean - false)으로 채움.
int[] arr = {1, 2, 3};
int[] copy = Arrays.copyOf(arr, 5); // [1, 2, 3, 0, 0]

▪ Arrays.sort(T[] a)

  • 기능 : 기본 오름차순 정렬
int[] arr = {5, 3, 1, 4, 2};
Arrays.sort(arr); // [1, 2, 3, 4, 5]

▪ Arrays.sort(T[] a, Comparator<? super T> c)

  • binarySearch과 함께 사용할 경우 정렬 기준을 같이 맞춰야 함.
  • Comparator 구문에 따라 오름/내림이 변경됨.
String[] arr = {"banana", "apple", "cherry"};
Arrays.sort(arr, (s1, s2) -> s2.compareTo(s1)); // 내림차순 정렬
// ["cherry", "banana", "apple"]

▪ Arrays.equals(T[] a, T[] a2)

  • 기능 : 두 배열이 모든 요소가 같은지 비교.
  • 순서도 중요함.
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
boolean isEqual = Arrays.equals(arr1, arr2); // true

▪ Arrays.toString(T[] a)

  • 기능 : 배열을 보기 좋게 문자열로 변환.
int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr)); // "[1, 2, 3]"

▪ Arrays.fill(T[] a, T val)

  • 기능 : 배열을 모두 특정 값으로 초기화
  • 구간을 지정하면, 일부 범위만 채울 수 있음: fill(arr, fromIndex, toIndex, value) (toIndex는 포함 안 함)
int[] arr = new int[5];
Arrays.fill(arr, 7); // [7, 7, 7, 7, 7]
Arrays.fill(arr, 1, 4, 9); // 인덱스 1부터 3까지 9로 채움

▪ Arrays.binarySearch(T[] a, T key)

  • 기능 : 이진 탐색으로 요소를 찾음. (정렬된 배열이어야 함)
  • 찾는 값이 없으면 (-삽입위치 -1)을 반환함.
int[] arr = {1, 3, 5, 7, 9}; 
// 오름차순 정렬된 상태

System.out.println(Arrays.binarySearch(arr, 5)); 
// 5는 2번 인덱스에 있으니까 => 결과: 2

System.out.println(Arrays.binarySearch(arr, 4)); 
// 4는 없음. 그런데 5 앞에 들어가야 하니까 인덱스 2에 삽입해야 함.
// 그러면 (-2 - 1) = -3 반환
참고로 만약 List 형태(예: List<Integer>)라면 Collections.binarySearch(list, key, comparator)를 사용 가능
List<Integer>list = Arrays.asList(9, 7, 5, 3, 1);
    int index = Collections.binarySearch(list, 5, Comparator.reverseOrder());
    System.out.println(index); // 2

🌐 3. Arrays.stream() + Stream 활용 정리

▪ Arrays.stream()

  • 배열을 Stream으로 변환.
  • 이후 filter(), map(), sum(), collect() 등 다양한 연산을 체이닝 할 수 있음.

형식

Arrays.stream(배열)

▪ 자주 쓰는 Stream 조합 예시

✔️ 배열 합 구하기

int[] arr = {1, 2, 3, 4, 5};
int sum = Arrays.stream(arr).sum(); // 15

✔️ 배열 최댓값, 최솟값 구하기

int max = Arrays.stream(arr).max().getAsInt(); // 5
int min = Arrays.stream(arr).min().getAsInt(); // 1

✔️ 배열을 List로 변환

String[] arr = {"apple", "banana", "cherry"};
List<String> list = Arrays.stream(arr).collect(Collectors.toList());

✔️ 배열을 가공하고 정렬

int[] sorted = Arrays.stream(arr).sorted().toArray();

✔️ 필터링한 후 수 세기

long count = Arrays.stream(arr).filter(n -> n % 2 == 0).count();

 

'Code Odyssey' 카테고리의 다른 글

Kotlin 코딩테스트 문법 시리즈 ② : 문자열 (String)  (1) 2025.07.02
Kotlin 코딩테스트 문법 시리즈 ① : 기본 자료형 & 변수  (0) 2025.07.01
Map<String, Integer> dp 는 시간초과가 나는 이유 : 프로그래머스 - 사칙연산  (1) 2025.06.11
왜 Java는 length, length(), size()를 따로 써야 할까? – 통일 안 된 이유  (1) 2025.06.06
📌 Java에서 배열 정렬하기 - Arrays.sort()  (0) 2025.05.24
'Code Odyssey' 카테고리의 다른 글
  • Kotlin 코딩테스트 문법 시리즈 ① : 기본 자료형 & 변수
  • Map<String, Integer> dp 는 시간초과가 나는 이유 : 프로그래머스 - 사칙연산
  • 왜 Java는 length, length(), size()를 따로 써야 할까? – 통일 안 된 이유
  • 📌 Java에서 배열 정렬하기 - Arrays.sort()
Celion
Celion
오늘도 평소처럼 화이팅!
  • Celion
    Orion Log
    Celion
  • 전체
    오늘
    어제
    • 전체 글 (144)
      • Uncompiled Thoughts (8)
        • 네이버 부스트캠프 10기 (5)
      • CS 기초부터 한 걸음씩 (34)
      • Code Odyssey (22)
      • Algorithm (77)
        • Coding Test Records (63)
      • Git (3)
      • reference (0)
  • 블로그 메뉴

    • 태그
    • 방명록
  • 태그

    문법정리
    greedy
    boostcamp
    시뮬레이션
    Level2
    Level3
    프로그래머스
    알고리즘고득점kit
    코테
    백준
    java
    Kotlin
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
Celion
Arrays 유용 메서드 정리
상단으로

티스토리툴바