Java - Arrays

iseon_u·2022년 5월 22일
0

Java

목록 보기
56/77
post-thumbnail

Arrays


  • 배열을 다루기 편리한 메서드 (static) 제공하는 클래스

toString()

  • 배열의 출력
  • 오버로딩 메서드
static String toString(int[] a)

copyOf(), copyOfRange()

  • 배열의 복사
  • 새로운 배열 생성 반환
int[] arr = {0, 1, 2, 3, 4};
int[] arr2 = Arrays.copyOf(arr, arr.length);
int[] arr3 = Arrays.copyOfRange(arr, 7);
int[] arr4 = Arrays.copyOfRange(arr, 2, 4); // indexEnd 는 불포함

fill(), setAll()

  • 배열 채우기
int[] arr = new int[5];
Arrays.fill(arr, 9);
Arrays.setAll(arr, (i) -> (int)(Math.random()*5)+1); // arr = [1, 5, 2, 1, 1]
// 람다식으로 채우기

sort(), binarySearch()

  • 배열의 정렬과 검색
  • binarySearch() 이진 탐색은 정렬된 배열에만 탐색 가능
int[] arr = {3, 2, 0, 1, 4};
int idx = Arrays.binarySearch(arr, 2); // 잘못된 결과 - 정렬 필요

Arrays.sort(arr); // 배열 arr 을 정렬
int idx = Arrays.binarySearch(arr, 2); // 올바른 결과

💡 순차 탐색 - 처음부터 하나씩 탐색

💡 이진(이분) 탐색 - 반씩 나누면서 탐색 (정렬 필수)

deepToString()

  • 다차원 배열의 출력
int[][] arr2D = {{11, 12}, {21, 22}};
System.out.println(Arrays.deepToString(arr2D)); // [[11, 12], [21, 22]]

deepEquals()

  • 다차원 배열의 비교
String[][] str2D = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
String[][] str2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};

System.out.println(Arrays.deepEquals(str2D, str2D2));

asList(Object... a)

  • 배열을 List로 변환
  • 가변 매개 변수
  • List 는 읽기 전용
List list = Arrays.asList(new Integer[]{1, 2, 3, 4, 5});
List list = Arrays.asList(1, 2, 3, 4, 5);
list.add(6); // ❌ 예외 발생 - List 는 읽기 전용
List list = new ArrayList(Arrays.asList(1,2,3,4,5)); // 새로운 ArrayList 생성 후 변경

parallelXXX(), spliterator(), stream()

  • 람다와 스트림 관련
profile
🧑🏻‍💻 Hello World!

0개의 댓글