profile image

L o a d i n g . . .

13번

학생들에게 가장 좋아하는 SF영화를 조사하여 배열에 저장하였다. 각 영화의 답변 횟수를 계산하여 출력하시오

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;

public class Movies {

	public static void main(String[] args) {
		String[] arr = { "Transformer", "Starwars", "Matrix", "Terminator", "Avatar",
				"Starwars", "Aliens", "Avatar", "Matrix", "Terminator", "AI", "Matrix",
				"The Martian", "Avatar", "Interstellar", "Transformer", "The Fly",
				"Cube", "Ex Machina", "I, Robot", "Deja Vu", "The Martian", "Gravity",
				"Terminator", "The Martian", "Interstellar", "Deja Vu", "Avatar" };
		
		ArrayList<String> list = new ArrayList<String>();
		for ( String s : arr) {
			list.add(s);
		}
		
		HashSet<String> hset = new HashSet<String>(list); // 생성자의 괄호에 컬렉션을 넣어주면 초기값으로 넣어준다.
		for(String s : hset) {
			System.out.println(s + ": " + Collections.frequency(list, s));
		}
		
	}

}

 

14번

HashSet을 이용하여 중복을 제거하시오.

 

import java.util.Arrays;
import java.util.HashSet;

public class Unique {

	public static void main(String[] args) {
		String[] arr = { "a", "b", "b", "a", "a", "a", "c" };
		System.out.println( "arr = " + Arrays.toString(arr));
		
		HashSet<String> hset = new HashSet<String>( Arrays.asList(arr) ); // 배열 -> List -> HashSet
		// asList 배열을 컬렉션 객체로
		String[] arr2 = hset.toArray( new String[0] ); // HashSet -> 배열
		// toArray 컬렉션을 배열로
		// hset이 0크기의 배열을 인자로 받아도 알아서 맞는 크기의 배열로 리턴해준다.
		System.out.println("arr2 = " + Arrays.toString(arr2));

	}

}


15번

고객의 이름과 포인트 점수를 관리하는 프로그램을 작성하시오.

 고객의 이름과 추가하고 포인트를 한 줄에 입력 받으시오.
 기존의 고객이면 기존 점수에 합산하고,
 기존의 고객이 아니면, 새롭게 추가하시오.
 매번 입력을 처리핚 다음에 전체 데이터를 출력하시오.
 HashMap컬렉션을 사용하시오.
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.StringTokenizer;

public class Customer {

	public static void main(String[] args) {
		
		HashMap<String, Integer> CustomerHashMap = new HashMap<String, Integer>();
		Scanner sc = new Scanner(System.in);
		String information, name;
		int point;
		
		while(true) {
			System.out.print("이름과 포인트 입력> ");
			
			information = sc.nextLine();
			StringTokenizer st = new StringTokenizer(information);
			if(information.equals("exit"))
				break;
			
			if(!(st.countTokens()==2)) {
				System.out.println("잘못된 입력"); 
				continue;
			}
			name = st.nextToken();
			point = Integer.parseInt(st.nextToken());
			
			
			Set<String> keys = CustomerHashMap.keySet();
			
			Iterator<String> it = keys.iterator();
			int check = 0;
			while(it.hasNext()) {
				if (it.next().equals(name)) {
					CustomerHashMap.put(name, CustomerHashMap.get(name)+point);
					check = 1;
					break;
				}
			}
			if (check==0) {
				CustomerHashMap.put(name, point);
			}
			
			System.out.println(CustomerHashMap);
			
		}
		

	}

}
복사했습니다!