이번 포스팅은 Java의 ArrayList 또는 List에서 최대, 최소, 합계, 평균을 구하는 방법을 소개합니다.
방법 1. IntSummaryStatistics 클래스
java.util 패키지에 존재하는 IntSummaryStatistics 클래스는 최대, 최소, 합계, 평균, 개수 등 다양한 통계 자료를 추출합니다. Java 8 버전 이상을 사용한다면, Stream 클래스와 조합하여 사용할 수 있습니다.
IntSummaryStatistics 클래스에서 지원하는 메서드
getSum(): long 타입의 값인 합계를 반환합니다.
getAverage(): double 타입의 값인 평균을 반환합니다.
getMin(): int 타입의 값인 최솟값을 반환합니다.
getMax(): int 타입의 값인 최댓값을 반환합니다.
getCount(): long 타입의 값인 요소의 수를 반환합니다.
다음 예제는 IntSummaryStatistics 클래스를 사용하여 통계 자료를 구합니다.
public class Main {
public static void main(String args[]) {
ArrayList<Integer> intArrayList = new ArrayList<>(
Arrays.asList(10, 5, 20, 30, 15)
);
IntSummaryStatistics statistics = intArrayList
.stream()
.mapToInt(num -> num)
.summaryStatistics();
System.out.println("합계: " + statistics.getSum());
System.out.println("평균: " + statistics.getAverage());
System.out.println("최소: " + statistics.getMin());
System.out.println("최대: " + statistics.getMax());
System.out.println("개수: " + statistics.getCount());
}
}
실행 결과
합계: 80
평균: 16.0
최소: 5
최대: 30
개수: 5
방법 2. Stream API 사용 안함
Stream API를 사용하지 않고 ArrayList의 통계 자료를 구하는 방법을 소개합니다.
합계: 반복문을 사용하여 변수에 값을 누적합니다.
평균: 합계를 ArrayList 요소의 수로 나눕니다.
최소: ArrayList를 sort() 메서드로 정렬 후 0번째 인덱스의 값을 가져옵니다.
최대: ArrayList를 sort() 메서드로 정렬 후 마지막 요소의 값을 가져옵니다.
개수: size() 메서드를 사용합니다.
다음 예제는 위 방법을 사용하여 ArrayList의 통계 자료를 구합니다.
public class Main {
public static void main(String args[]) {
ArrayList<Integer> intArrayList = new ArrayList<>(
Arrays.asList(10, 5, 20, 30, 15)
);
int sum = 0;
// 합계: 반복문을 사용하여 변수에 값을 누적합니다.
for (int num: intArrayList) {
sum += num;
}
// 최소, 최대: ArrayList를 오름차순으로 정렬합니다.
Collections.sort(intArrayList);
// 합계: 반복문을 사용하여 변수에 누적된 값입니다.
System.out.println("합계: " + sum);
// 평균: 합계를 요소의 수로 나눕니다.
System.out.println("평균: " + (double)sum / intArrayList.size());
// 최소: 오름차순으로 정렬된 ArrayList의 첫 번째 요소를 가져옵니다.
System.out.println("최소: " + intArrayList.get(0));
// 최대: 오름차순으로 정렬된 ArrayList의 마지막 요소를 가져옵니다.
System.out.println("최대: " + intArrayList.get(intArrayList.size() - 1));
// 개수: size() 메서드를 사용하여 개수를 가져옵니다.
System.out.println("개수: " + intArrayList.size());
}
}
실행 결과
합계: 80
평균: 16.0
최소: 5
최대: 30
개수: 5
최솟값과 최댓값을 구하는 또 다른 방법으로 Collections 클래스의 min(), max() 메서드를 사용할 수 있습니다.
다음 예제는 Collections 클래스의 min(), max() 메서드를 사용합니다.
public class Main {
public static void main(String args[]) {
ArrayList<Integer> intArrayList = new ArrayList<>(
Arrays.asList(10, 5, 20, 30, 15)
);
System.out.println("최소: " + Collections.min(intArrayList));
System.out.println("최대: " + Collections.max(intArrayList));
}
}
실행 결과
최소: 5
최대: 30
반응형
'Java > 컬렉션' 카테고리의 다른 글
[Java]ArrayList 반복문 사용 방법 (0) | 2022.06.23 |
---|---|
[Java]ArrayList 비어 있는지 확인하는 방법 (0) | 2022.06.23 |
[Java]ArrayList 다중 삭제 (0) | 2022.06.22 |
[Java]ArrayList 초기화 방법 (0) | 2022.06.20 |
[Java]HashMap 특정 키가 존재하는지 확인하는 방법 (0) | 2022.06.20 |
댓글