개발자꿈나무
컬렉션 프레임워크 - HashMap 본문
- 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
'자바' 카테고리의 다른 글
쓰레드 - 멀티쓰레드, 쓰레드 우선순위 (0) | 2023.01.28 |
---|---|
컬렉션 프레임워크 - TreeMap (0) | 2023.01.28 |
컬렉션 프레임워크 - TreeSet (0) | 2023.01.28 |
컬렉션 프레임워크 - HashSet (0) | 2023.01.26 |
컬렉션 프레임워크 - Comparator , Comparable (0) | 2023.01.26 |