본문 바로가기
JAVA/컬렉션 프레임워크

Arrays

by chogigang 2023. 3. 24.

배열을 다루기 편리한 메소드를 제공합니다.

 

메소드들은 모두 Static 입니다.

Math , Objects,Coolections 등  Static 메소드들을 제공하며 유틸 메소드라고 합니다.

 

 

 

 

package Array;

import java.util.Arrays;

public class Array {

    public static void main(String[] args) {
        int[]     arr   = {0,1,2,3,4};
        int[][]    arr2D = {{11,12,13}, {21,22,23}};

        System.out.println("arr="+Arrays.toString(arr));//배열 보기 좋게 출력
        System.out.println("arr2D="+Arrays.deepToString(arr2D));//2차원 배열

        int[] arr2 = Arrays.copyOf(arr, arr.length);//배열을 복사헤서 arr2 를 생성 length 는 5
        int[] arr3 = Arrays.copyOf(arr, 3);//3개만 복사
        int[] arr4 = Arrays.copyOf(arr, 7);//배열보다 크니깐 복사를 다하고  나머지 값들은 0으로 채운다.
        int[] arr5 = Arrays.copyOfRange(arr, 2, 4);// 2<=x<4 => 2~3 복사
        int[] arr6 = Arrays.copyOfRange(arr, 0, 7);//0부터 7까지 복사하고 나머지 부족한 값은 0으로 채움

        System.out.println("arr2="+Arrays.toString(arr2));
        System.out.println("arr3="+Arrays.toString(arr3));
        System.out.println("arr4="+Arrays.toString(arr4));
        System.out.println("arr5="+Arrays.toString(arr5));
        System.out.println("arr6="+Arrays.toString(arr6));

        int[] arr7 =  new int[5];  //5개짜리 arr7를 생성
        Arrays.fill(arr7, 9);  // arr=[9,9,9,9,9] 9로 다채워라
        System.out.println("arr7="+Arrays.toString(arr7));

        Arrays.setAll(arr7, i -> (int)(Math.random()*6)+1);//0~5+1 => 0~6 범위를  랜덤값으로 채우기 표현은 람다식으로 했음
        System.out.println("arr7="+Arrays.toString(arr7));//

        for(int i : arr7) { //향상된 for문
        //for(int x=0;x<arr7.length;x++) { 와 같음
        //    int i = arr7[x];
            char[] graph = new char[i]; //  새로운 캐릭터 배열을 생성 i 값만큼 배열 크기 지정
            Arrays.fill(graph, '*');// 생성된 배열안에 * 로 채움
            System.out.println(new String(graph)+i); //배열의 크기만큼 *를 문자열 로 출력하며 뒤에 I값을 같이 출력
        }

        String[][] str2D  = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
        String[][] str2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};

        System.out.println(Arrays.equals(str2D, str2D2));     // false
        System.out.println(Arrays.deepEquals(str2D, str2D2)); // true 2차원 배열은 deepEquals 를 사용해야한다.

        char[] chArr = { 'A', 'D', 'C', 'B', 'E' };

        System.out.println("chArr="+Arrays.toString(chArr));
        System.out.println("index of B ="+Arrays.binarySearch(chArr, 'B'));//  binarySearch 해당 배열을 검색 배열의 정렬을 지정 안해서 잘못된 값이 출력
        System.out.println("= After sorting =");
        Arrays.sort(chArr); //이것이 배열의 정렬. binarySearch 하기전에 반드시 정렬먼저.
        System.out.println("chArr="+Arrays.toString(chArr));
        System.out.println("index of B ="+Arrays.binarySearch(chArr, 'B'));// binarySearch 값이 올바른 값이 출력
    }
}

'JAVA > 컬렉션 프레임워크' 카테고리의 다른 글

컬렉션 클래스 정리&요약  (0) 2023.02.24
hashSet,TreeSet,HashMap,Hashtable,Collections  (0) 2023.02.24
Comparator와 Comparable  (0) 2023.02.24
ArrayList,LinkedList,lterator  (0) 2023.02.24
컬렉션 프레임웍  (0) 2023.02.24