์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์ด ์ ๋ ฌํ ๋ ์ฐ๋ ๋ฉ์๋ `Arrays.sort()` ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ค.
ํ์ง๋ง ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ์ ๋ `Arrays.sort()`์ `Comparator` ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ์์ ๋ง์ถคํ ์ ๋ ฌ์ ์ํํ ์ ์๋ค.
๊ธฐ๋ณธ `Arrays.sort()`์ฌ์ฉ
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Integer[] arr = {5, 2, 9, 1, 3};
// ๊ธฐ๋ณธ ์ ๋ ฌ (์ค๋ฆ์ฐจ์)
Arrays.sort(arr);
System.out.println(Arrays.toString(arr)); // ์ถ๋ ฅ: [1, 2, 3, 5, 9]
}
}
๋ฐฐ์ด ์ฌ์ฉ์ ์ ๋ ฌ : `Comparator` ์ฌ์ฉ
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
Integer[] arr = {5, 2, 9, 1, 3};
// ์ฌ์ฉ์ ์ ์ ์ ๋ ฌ (๋ด๋ฆผ์ฐจ์)
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1; // ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
}
});
System.out.println(Arrays.toString(arr)); // ์ถ๋ ฅ: [9, 5, 3, 2, 1]
}
}
Comparator๋ฅผ `๋๋ค์`์ผ๋ก ์ ์ํ์ฌ Arrays.sort() ๋ฉ์๋์ ์ ๋ฌํ๋ฉด ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํด์ง๋ค.
(a, b) -> b - a: ๋ ๊ฐ์ ๋น๊ตํ๋ ๋๋ค์
b - a๋ ๋ด๋ฆผ์ฐจ์
Arrays.sort(arr, (a, b) -> b - a);
a - b๋ ์ค๋ฆ์ฐจ์
Arrays.sort(arr, (a, b) -> a - b);
import java.util.Arrays;
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name + " (" + age + ")";
}
}
public class Main {
public static void main(String[] args) {
Person[] people = {
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35)
};
// ๋์ด ๊ธฐ์ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
Arrays.sort(people, (p1, p2) -> p1.age - p2.age);
System.out.println(Arrays.toString(people));
// ์ถ๋ ฅ: [Bob (25), Alice (30), Charlie (35)]
}
}
`๋๋ค์` ์ฌ์ฉ - ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Integer[] arr = {5, 2, 9, 1, 3};
// ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ (๋๋ค์ ์ฌ์ฉ)
Arrays.sort(arr, (o1, o2) -> o2 - o1);
// ๋๋ Collections.reverseOrder() ์ฌ์ฉ
// Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr)); // ์ถ๋ ฅ: [9, 5, 3, 2, 1]
}
}
public static void main(String[] args) {
// ๋๋ค์์ ์ฌ์ฉํ ์ ๋ ฌ
Arrays.sort(nodes, (o1, o2) -> Integer.compare(o1.cost, o2.cost));
// Comparator ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ์ ๋ ฌ
Arrays.sort(nodes, new Comparator<Node>() {
@Override
public int compare(Node o1, Node o2) {
return Integer.compare(o1.cost, o2.cost);
}
});
}
'Coding > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์๋ฐ์ ์๋ฃํ Map ๊ณผ Set ์ ์ฐจ์ด (9) | 2024.11.07 |
---|---|
[Java] JDBC ์ค๋ผํด์ด๋ ์๋ฐ ์ฐ๋ (31) | 2024.11.04 |
[Java] ์๋ฐ์์ map์ ์ค์ ๊ฐ๋ฐ์์ ์ด๋์ ์ฐ์ผ๊น? (18) | 2024.11.03 |
[Java] ์๋ฐ ์ฝ๋๊ฐ ์คํ๋๋ ๊ณผ์ & JVM & ๋ฉ๋ชจ๋ฆฌ (13) | 2024.11.03 |
[Java] ArrayList, ์ ๋ค๋ฆญ์ค(Generics), ์ ๋ ฌ, Join, String.join ์ ๋ฆฌ (8) | 2024.11.03 |