
์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์ด ์ ๋ ฌํ ๋ ์ฐ๋ ๋ฉ์๋ `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);
}
});
}
'ํ๋ก๊ทธ๋๋ฐ์ธ์ด > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์์์ ์๋์ผ๋ก ํด์ ํ๋ try-with-resources ๊ตฌ๋ฌธ (57) | 2024.12.26 |
---|---|
[์ดํด๋ฆฝ์ค] Eclipse ๊นํ๋ธ ์ปค๋ฐ ํธ์ฌ ๋ก๊ทธ์ธ ์๋จ ํด๊ฒฐ๋ฒ (can't connect to any~) (65) | 2024.12.14 |
[Java] ์๋ฐ์ ์๋ฃํ Map ๊ณผ Set ์ ์ฐจ์ด (9) | 2024.11.07 |
[Java] JDBC ์ค๋ผํด์ด๋ ์๋ฐ ์ฐ๋ (31) | 2024.11.04 |
[Java] ์๋ฐ์์ map์ ์ค์ ๊ฐ๋ฐ์์ ์ด๋์ ์ฐ์ผ๊น? (18) | 2024.11.03 |

์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์ด ์ ๋ ฌํ ๋ ์ฐ๋ ๋ฉ์๋ 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); } }); }
'ํ๋ก๊ทธ๋๋ฐ์ธ์ด > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์์์ ์๋์ผ๋ก ํด์ ํ๋ try-with-resources ๊ตฌ๋ฌธ (57) | 2024.12.26 |
---|---|
[์ดํด๋ฆฝ์ค] Eclipse ๊นํ๋ธ ์ปค๋ฐ ํธ์ฌ ๋ก๊ทธ์ธ ์๋จ ํด๊ฒฐ๋ฒ (can't connect to any~) (65) | 2024.12.14 |
[Java] ์๋ฐ์ ์๋ฃํ Map ๊ณผ Set ์ ์ฐจ์ด (9) | 2024.11.07 |
[Java] JDBC ์ค๋ผํด์ด๋ ์๋ฐ ์ฐ๋ (31) | 2024.11.04 |
[Java] ์๋ฐ์์ map์ ์ค์ ๊ฐ๋ฐ์์ ์ด๋์ ์ฐ์ผ๊น? (18) | 2024.11.03 |