배열 복사

 

Array 에는 배열사용을 지원하기 위한 여러가지 static 메서드들이 들어있다.

 

복사는 한 배열에 들어있는 값들을 다른 배열로 복제하는 것을 말한다. 참조만 복사하는게 아니라 완전히 복사해야 각각의 데이터가 별개의 메모리를 갖는다.

        int[] array1 = {1,3,5,7,9,11,13,15};
        int[] array2 = Arrays.copyOf(array1, array1.length);

        for (int n : array1) {
            System.out.print(n + " ");
        }
        System.out.println();

        for (int n : array2) {
            System.out.print(n + " ");
        }
        System.out.println();

 

배열 채우기

배열을 채우는 방법은 여러가지가 있다. 초기화를 하고 싶을 때 fill 을 사용한다.

 

        int[] array3 = new int[7];
        Arrays.fill(array3, 7);

        for (int n : array3) {
            System.out.print(n + " ");
        }
        System.out.println();

 

toString 사용하기

 

이거는 배열에 들어있는 내용을 확인하기 위한 용도이다. for 나 while 문으로 확인하기 귀찮으니까 요긴하게 사용할 수 있다.

int[] array5 = new int[10];
        Arrays.setAll(array5, (i) -> (int)(Math.random()*10)+1);

        System.out.println(Arrays.toString(array5));

 

배열 정렬과 이진검색

배열을 정렬한다. sort 메서드 하나로 정렬되니까 일이 쉽다.

 

배열의 이진검색은 sort로 정렬이 되어야 제대로된 검색을 표시한다. 정렬하지 않은 상태에서 이진검색을 하면 -5 같은 잘못된 값이 나온다.

 

        // ----- 배열 정렬(sort) -----

        printTitle("배열 정렬");

        int[] array4 = {2,6,4,8,20,14,18,16,12,10};
        Arrays.sort(array4);
        int key = 12;
        System.out.println(Arrays.toString(array4));

        // ----- 배열 이진검색 -----

        printTitle("배열 이진검색");

        int index = Arrays.binarySearch(array4, key);
        System.out.println("binary search key : " + key + " index : "+index);

 

배열 <-> 리스트 변환

배열을 리스트로 변환시킨다. 변환시에는 자료형이 중요하다. 자료형이 맞지 않으면 변환이 안된다.

 

        // ----- 리스트 변환 String -----

        printTitle("리스트 변환 - String");

        String[] array = {"A", "B", "C", "D"};
        System.out.println("Array : " +Arrays.toString(array));
        ArrayList<String> list1 = new ArrayList<String>(Arrays.asList(array));

        System.out.println("ArrayList : " + list1);

        // ----- 리스트 변환 Integer -----

        printTitle("리스트 변환 - Integer");

        Integer[] array7 = {1,3,5,7,9};

        ArrayList<Integer> list2 = new ArrayList<Integer>(Arrays.asList(array7));
        for (int i: list2) {
            System.out.print(i + " ");
        }
        System.out.println();

        printTitle("배열로 다시 변환 - Integer");

        Integer[] array8 = list2.toArray(new Integer[list2.size()]);

        for (int i: array8) {
            System.out.print(i + " ");
        }

 

*배열 -> 리스트

 

배열은 Arrays 클래스의 메서드로 변환

 

*리스트 -> 배열

 

리스트는 toArray 라는 메서드로 변환

 

잘 구현된 자료형을 가져다 쓰기만 하면 되니까 어렵지 않은 내용이다.

공유하기

facebook twitter kakaoTalk kakaostory naver band