Java Arrays.copyOf()와 Arrays.sort()

Bumgu·2023년 6월 30일
0

이 포스트는 작성자의 다른 블로그에서 벨로그로 이전하며 가져오는 포스트 입니다.

Arrays.copyOf()와 Arrays.sort() 둘다 Arrays클래스에 있는 메소드이다.

public static void main(String[] args) {
    int[] num = {1,5,9,8,20,10,15};
    Arrays.sort(num);
    for (int asd : num){
        System.out.print(asd+" ");
    }

int타입 배열 num에 정수들이 무작위로 있고 오름차순으로 정렬 하고싶다면
Arrays.sort(참조할변수)를하면 된다 그럼 결과는

1 5 8 9 10 15 20

와 같이 오름차순으로 정렬되어 출력된다.

반대인 내림차순의 경우는,

//내림차순은 특별히 Integer라는 Wrapper Class타입으로 처리가 되어야함
Integer rev[] = {1,5,9,8,20,10,15};
Arrays.sort(rev, Collections.reverseOrder());
for (int i : rev){
    System.out.print(i+" ");
}

오름차순과 같이 Arrays.sort(참조할변수) 까지하고 그뒤에
collections.reverseOrder() 가 있어야 내림차순으로 정렬이된다.
결과는,

20 15 10 9 8 5 1

와 같이 출력된다.

Arrays.copyOf()

public static void main(String[] args) {
    int[] list = {10,20,30,40,50};
    //명시적 복사
    int[] numbers = list;
    for (int i=0; i<numbers.length; i++){
        System.out.println(numbers[i]);
    }
    System.out.println();
    //Arrays클래스 이용 복사
    int[] list_copy = Arrays.copyOf(list,list.length);
    for (int val : list_copy){
    System.out.println(val);}
}

배열 복사에는 for문을 이용한 명시적 복사가 있고 Arrays클래스를 이용한 복사가 있다
우선 명시적 복사는 = 연산자를 이용해 값을 대입해주면 끝이다.
배열을 복사할 list_copy배열을 선언해주고
int[] list_copy = Arrays.copyOf(복사할 배열,복사할 길이)를 입력해주면 된다
list배열을 list의 길이만큼 복사 할 거기 때문에 list,list.length를 이용해 복사해주면 된다

profile
Software VS Me

0개의 댓글

관련 채용 정보