Java

Arrays

voider 2020. 9. 9. 10:48

Arrays

배열을 다루기 편한 static메서드를 제공한다.

배열의 출력

toString()

static String toString(boolean[] a)
static String toString(byte[] a)
static String toString(char[] a)
...
...
static String toString(Object[] a)

println메서드처럼 모든 타입을 출력할 수 있게 오버로딩 되어 있다.

배열 복사

  • copyOf()
    배열 전체를 복사한다.
  • copyOfRange()
    배열 일부를 복사한다.
int[]  arr = {0,1,2,3,4};
int[] arr2 = Arrays.copyOf(arr, arr.length);    //0,1,2,34
int[] arr3 = Arrays.copyOf(arr,3)                //0,1,2
int[] arr4 = Arrays.copyOf(arr,7)                //0,1,2,3,4,0,0

int[] arr5 = Arrays.copyOfRange(arr, 2, 4);    //2,3
int[] arr6 = Arrays.copyOfRange(arr,0,7);    //0,1,2,3,4,0,0

배열 채우기

  • fill()
    배열의 모든 요소를 지정한 값으로 채운다.
  • setAll()
    배열을 채우는 데 사용할 함수형 인터페이스를 매개변수로 받는다. 이 말은 함수형 인터페이스를 구현한 객체 또는 람다식을 지정해야 한다는 것이다.
int[] arr = new int[5];
Arrays.fill(arr, 9);    // [5,5,5,5,5]
Arrays.setAll(arr, ()->(int)(Math.random()*5)+1;    //1-5사이 임의의 수 5개 저장.

배열을 List로 변환

  • asList(Object... a)
    배열을 List로 반환한다. 매개변수의 타입 가변인수여서 배열 생성 없이 저장할 요소들만 나열하는 것도 가능하다.
    List list = Arrays.asList(new Integer[]{1,2,3,4,5});
    List list2 = Arrays.asList(1,2,3,4,5);
    list.add    // Error.
    asList()로 반환한 List는 크기를 변경할 수 없다.
    크기를 변경할 수 있는 List를 반환해야 한다면 이렇게 한다.
    List list = new ArrayList(Arrays.asList(1,2,3,4,5));

'Java' 카테고리의 다른 글

HashSet  (0) 2020.09.09
Comparable & Comparator  (0) 2020.09.09
List  (0) 2020.09.09
Stack & Queue  (0) 2020.09.09
Collections Framework - 핵심 인터페이스  (0) 2020.09.09