반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- CMD
- list
- 자바
- Button
- table
- ArrayList
- Array
- javascript
- vscode
- html
- 정규식
- windows
- 인텔리제이
- CSS
- IntelliJ
- 이탈리아
- string
- 자바스크립트
- input
- Maven
- 이클립스
- 문자열
- 배열
- Visual Studio Code
- js
- json
- date
- Java
- Eclipse
- 테이블
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Collections.max(), Collections.min()으로 최대/최소값 찾기 본문
리스트에서 가장 큰 값이나 가장 작은 값을 찾을 때, 보통 반복문을 돌려서 비교합니다.
하지만 자바에서는 Collections.max()
와 Collections.min()
메서드를 이용하면 훨씬 간단합니다.
이 메서드들은 리스트에서 최댓값과 최솟값을 쉽게 찾을 수 있게 해줍니다.
1. 숫자 리스트에서 최대/최소값 찾기
import java.util.*;
public class MaxMinExample1 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(10, 5, 20, 8, 15);
int max = Collections.max(numbers);
int min = Collections.min(numbers);
System.out.println("최댓값: " + max);
System.out.println("최솟값: " + min);
}
}
실행 결과
최댓값: 20
최솟값: 5
👉 반복문 없이 한 줄로 최댓값과 최솟값을 얻을 수 있습니다.
2. 문자열 리스트에서 사용하기
문자열도 사전순으로 비교하여 최대/최소값을 찾을 수 있습니다.
import java.util.*;
public class MaxMinExample2 {
public static void main(String[] args) {
List<String> names = Arrays.asList("Tom", "Alice", "Bob", "David");
String max = Collections.max(names);
String min = Collections.min(names);
System.out.println("사전순 최댓값: " + max);
System.out.println("사전순 최솟값: " + min);
}
}
실행 결과
사전순 최댓값: Tom
사전순 최솟값: Alice
👉 문자열의 경우 사전순 비교가 적용됩니다.
3. Comparator로 사용자 정의 정렬 기준 적용
Comparator
를 함께 사용하면 원하는 기준으로 최댓값과 최솟값을 찾을 수 있습니다.
import java.util.*;
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 MaxMinExample3 {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Tom", 25),
new Person("Alice", 30),
new Person("Bob", 20)
);
Person oldest = Collections.max(people, Comparator.comparingInt(p -> p.age));
Person youngest = Collections.min(people, Comparator.comparingInt(p -> p.age));
System.out.println("가장 나이 많은 사람: " + oldest);
System.out.println("가장 나이 어린 사람: " + youngest);
}
}
실행 결과
가장 나이 많은 사람: Alice(30)
가장 나이 어린 사람: Bob(20)
👉 Comparator
를 이용하면 숫자, 문자열이 아닌 객체에서도 원하는 기준으로 최대/최소값을 찾을 수 있습니다.
4. 정리
Collections.max(Collection)
→ 최댓값 반환Collections.min(Collection)
→ 최솟값 반환- 기본적으로 자연 순서(Comparable) 기준
Comparator
를 전달하면 원하는 기준으로 최댓값/최솟값 선택 가능
👉 Collections.max()
와 min()
을 활용하면 반복문 없이 손쉽게 최댓값과 최솟값을 구할 수 있다!
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Collections.replaceAll()으로 리스트 요소 일괄 교체하기 (1) | 2025.09.04 |
---|---|
[Java 기초] Collections.swap()으로 리스트 요소 교환하기 (0) | 2025.09.04 |
[Java 기초] Collections.frequency()로 리스트에서 요소 개수 세기 (0) | 2025.09.03 |
[Java 기초] Collections.shuffle()로 리스트 무작위 섞기 (0) | 2025.09.02 |
[Java 기초] Collections.reverse()로 리스트 순서 뒤집기 (0) | 2025.09.02 |
Comments