개발자꿈나무

컬렉션 프레임워크 - HashMap 본문

자바

컬렉션 프레임워크 - HashMap

망재이 2023. 1. 28. 20:00
  • Map을 구현한 프레임워크로 키와 값을 받는다. 키는 중복이 불가하고, 값을 중복이 가능하다. 
  • 키는 저장된 값을 찾는데 사용되는 것!
HashMap<String, Integer> map = new HashMap<>();
		map.put("myID", 1234);
		map.put("asdf", 1111);
		map.put("asdf", 1222);
		
		Scanner s = new Scanner(System.in);
		
		while(true) {
			System.out.println("id와 password를 입력해주세요.");
			System.out.println("id : ");
			String id = s.nextLine().trim();
			System.out.println();
			
			System.out.println("password : ");
			int password = s.nextInt();
			System.out.println();
			
			if(!map.containsKey(id)) {
				System.out.println("입력하신 id는 존재하지 않습니다. 다시 입력해주세요.");
				continue;
			}
			if(!(map.get(id)).equals(password)) {
				System.out.println("비밀번호가 일치하지 않습니다. 다시 입력해주세요.");
			} else {
				System.out.println("id와 비밀번호가 일치합니다.");
				break;
			}
		}
        // id와 password가 일치하면 일치한다고 출력. 참고로 asdf는 중복된 값으로 뒤에 저장된 값으로 덮어씌워짐

//이름 점수를 저장해서 전체 출력, 이름만 출력, 총점 평균점수 최고점수와 이름 출력 
		
		HashMap<String, Integer> map = new HashMap<>();
		
		map.put("이자바", 36);
		map.put("김자바", 98);
		map.put("정자바", 79);
		map.put("최자바", 100);
		
		Set<String> keyset = map.keySet();
		Iterator<String> keyIterator = keyset.iterator();
		
		System.out.println("참가자 명단 : "+map.keySet());
		System.out.println();
		
		int sum = 0;
		int maxScore = 0;
		String name = "";
		
		while(keyIterator.hasNext()) {
			String k = keyIterator.next();
			int v = map.get(k);
			sum += v;
			
			if(v>maxScore) {
				maxScore = v;
				name = k;
			}
			
				
			System.out.println(k + " : "+v);
		}
		System.out.println();			
		System.out.println("합계 점수 : "+sum);
		System.out.printf("평균 점수 : %.2f%n", (double)sum/map.size());
		System.out.println("최고 점수 : "+maxScore+", 이름 : "+name);

 

728x90