Java
[Java] 최소값과 최대값을 구하게 해주는 Arrays.sort() 메소드
Rachel_
2022. 1. 1. 23:08
Arrays.sort()
배열이나 리스트를 정렬할 때, 별도의 정렬 로직을 짜지 않아도 이 메소드를 이용함으로써 간편하게 배열이나 리스트 정렬이 가능해진다.
1. 정수값의 오름차순 정렬
import java.util.Arrays;
public class CHAPTER09SORT {
public static void main(String[] args) {
int[] arr1 = {1, 5, 77, 2, 555, 324};
Arrays.sort(arr1);
for ( int i : arr1) {
System.out.println("[" + i + "]");
}
}
}
출력값 :
[1]
[2]
[5]
[77]
[324]
[555]
2. 문자형의 오른차순 정렬
import java.util.Arrays;
public class CHAPTER09SORT {
public static void main(String[] args) {
String[] arr2 = {"Apple", "Tomato", "Melon", "Banana"};
Arrays.sort(arr2);
for (String j : arr2){
System.out.println("["+j+"]");
}
}
}
출력값 :
[Apple]
[Banana]
[Melon]
[Tomato]
3. 내림차순 정렬(정수형, 문자형 모두 형식은 동일)
package com.java.Study;
import java.util.Arrays;
import java.util.Collections;
public class CHAPTER09SORT {
public static void main(String[] args) {
String[] arr3 = {"Apple", "Tomato", "Melon", "Banana"};
// 내림차순을 활용할 때에는 Collections.reverseOrder() 를 활용한다.
Arrays.sort(arr3, Collections.reverseOrder());
for(String S : arr3){
System.out.println("["+S+"]");
}
}
}
출력값 :
[Tomato]
[Melon]
[Banana]
[Apple]
4. 배열의 일부 내용만을 정렬
import java.util.Arrays;
import java.util.Collections;
public class CHAPTER09SORT {
public static void main(String[] args) {
int[] arr1 = {1, 77, 5, 2, 555, 324};
Arrays.sort(arr1, 0, 3); // [0]부터 3번째까지, 즉 0, 1, 2만 정렬을 한다는 의미이다.
for ( int i : arr1) {
System.out.println("[" + i + "]");
}
}
}
[1]
[5]
[77] // 까지가 정렬이 된 후, 다음 배열은 그대로 출력되었음을 알 수 있다.
[2]
[555]
[324]
5. 객체 배열의 정렬
객체로 이루어진 배열의 경우에는 객체 클래스가 Comparable 인터페이스의 compareTo() 메서드를 구현하고 있어야 정렬이 됩니다. 예제는 나이별로 사람들을 정리하는 예제입니다.
import java.util.Arrays;
class People implements Comparable {
private String name;
private int age;
public People(String name, int age){
this.name = name;
this.age= age;
}
public String print(){
return name+"("+age+")";
}
@Override
public int compareTo(People people) {
// TODO Auto-generated method stub
if (this.age < people.age) {
return -1;
} else if (this.age == people.age) {
return 0;
} else {
return 1;
}
}
}
public class Sort{
public static void main(String[] args) {
People[] arr = { new People("상현", 20)
, new People("철수", 14)
, new People("경완", 31)
, new People("대호", 40)
, new People("지운", 24)
};
Arrays.sort(arr); //오름차순 정렬
for (People i : arr) { //오름차순 출력
System.out.print("["+i.print()+"]");
}
Arrays.sort(arr,Collections.reverseOrder()); //내림차순 정렬
System.out.println();
for (People i : arr) { //내림차순 출력
System.out.print("["+i.print()+"]");
}
}
}