본문 바로가기
Coding/JAVA

[명품자바] 07. 제네릭과 컬랙션 실습문제 4번 문제풀이

by 찡콩찡 2022. 5. 10.
Vector 컬랙션을 이용하여 강수량의 평균을 유지 관리하는 프로그램을 작성하라. 강수량을 입력하면 백터에 추가하고현재 입력된 모든 강수량과 평균을 출력한다.
package chapter07;

import java.util.*;

public class RainFallEx {
	//Vector를 받아서 출력하는 메소드
	public static void print(Vector<Integer> v) {
		Iterator<Integer> it =v.iterator(); // Interator it 역할은 받은 v를 돌려라!
		while(it.hasNext())
			System.out.print(it.next() + " "); //integer 값을 하나씩 꺼내옴
			System.out.println();	
	}
	
	//Vector를 받아서 평균을 정수로 반환하는 메소드
	public static int average(Vector<Integer> v) {
	 	Iterator<Integer>  it = v.iterator();
	 	int sum = 0;  //누적점수 초기화
	 	int cnt = 0;  //카운트 초기화
	 	while(it.hasNext()) {
	 		int num = (int)it.next(); 
	 		sum += num;
	 		cnt++; //누적시킬때마다 카운트 해 줄 갯수가 필요하니 cnt도 ++을 해준다.
	 	}
	 	return sum/cnt;
	}
	

	//0을 입력할 때까지 강수량과 평균을 출력하는 시나리오를 짜야함
	public static void main(String[] args) {
	// 1.필요한 객체를 선언한다.
		Scanner scan = new Scanner(System.in);
		Vector<Integer> vector = new Vector<>();
	// 2.0을 입력할 때까지 강수량목록(print)과 평균(average)을 출력한다.
	    while(true) {
	    	System.out.println("강수량 입력(0입력시 종료) >>");
	    	int num = scan.nextInt();
	    	if(num==0) break;
	    	else vector.add(num);
	    	print(vector);
	    	System.out.println("강수 평균:" + average(vector));
	    }
	}
}
코드 결과 값