이 포스트는 작성자의 다른 블로그에서 벨로그로 이전하며 가져오는 포스트 입니다.
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를 이용해 복사해주면 된다