일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 추후정리
- foreignkey
- 포트
- Query
- EC2
- 2 > /dev/null
- 메소드명
- 테스트
- appspec
- subquery
- application.yml
- ㅔㄴ션
- querydsl
- 참조키
- ubuntu
- docker명령어
- appspec.yml
- 검색
- WeNews
- MySQL
- 컨테이너실행
- 외부키
- 서브쿼리
- 테스트메소드
- 커밋메세지수정
- 예약
- AuthenticationEntryPoint
- 메세지수정
- 네이티브쿼리
- 적용우선순위
Archives
- Today
- Total
제뉴어리의 모든것
Chapter 11. Collection Framework - 4 (컬랙션 프레임웍의 구현체의 대하여 - Map) 본문
Map 인터페이스 구현체
- HashMap
Map 인터페이스를 구현한 클래스이므로 데이터는 key, value를 한쌍의 데이터(Entry)로 저장한다는 특징이있다.
그리고 해싱을 사용하기 때문에 많은양의 데이터를 검색할때 뛰어난 성능을 보인다.
내부적으로는 key,value 의 한쌍인 데이터를 객체지향적으로 Entry란 내부클래스를 만들어서 관리한다.
그리고 Map에 저장되는 데이터(Entry)는 Map 내부에 선언된 Entry 배열에 담겨 처리 된다.
- 특징
1. 데이터를 key, value 한 쌍의 형태로 관리
2. key는 Map 컬랙션에서 유일해야한다.
3. value는 중복이 가능하다. 즉 유일하지 않아도 된다.
4. key값이 중복되어 들어 올 경우 기존 key와 쌍이던 value에 중복되어 들어온 key의 쌍인 value 값으로 덮어진다.
5. key와 value 값으로 null을 허용한다. (같은 Map의 구현체인 Hashtable에서는 불가하다)
- HashMap의 대한 정리 -
HashMap
Map의 구현체중 하나
Key 중복 X,
Value 중복 O,
데이터 저장순서 유지 X
HashMap의 메서드
아래의 사이트 참조로 대체한다
https://gre-eny.tistory.com/97
- 관련 코드 1 (아이디, 비밀번호 체크)
package ch11.ex;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class HashMapEx1 {
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("myId", "1234");
map.put("deleter", "1111");
map.put("deleter", "2232"); //deleter 키의 value는 2232로 덮어쓰여진다
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("id와 pwd를 입력하여 주세요 : ");
System.out.printf("id : ");
String id = scanner.nextLine().trim();
System.out.printf("pwd : ");
String pwd = scanner.nextLine().trim();
// Set<Map.Entry<String, String>> maps = map.entrySet();
if (!map.containsKey(id)) {
System.out.println("id가 존재하지 않습니다. 다시 입력하세요");
continue;
}
if (!map.get(id).toString().equals(pwd)) {
System.out.println("pwd가 일치하지 않습니다. 다시 입력하세요");
}
else
{
System.out.println("비밀번호가 일치합니다");
Set<Map.Entry<String, String>> maps = map.entrySet();
break;
}
}
}
}
- 관련 코드 2 (각 위인 점수 내기)
package ch11.ex;
import java.util.*;
public class HashMapEx2 {
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("강감찬", 1900);
map.put("을지문덕", 1800);
map.put("이순신", 2000);
map.put("복지겸", 1000);
map.put("여포", 10);
Set set = map.entrySet();
Iterator entryIter = set.iterator();
while (entryIter.hasNext()) {
Map.Entry entry = (Map.Entry)entryIter.next();
System.out.printf("key : %s , value : %s",entry.getKey(), entry.getValue());
System.out.println();
}
System.out.println("참가자 : "+ map.keySet());
Collection collection = map.values();
Iterator iterator = collection.iterator();
int total = 0;
while (iterator.hasNext()) {
total += (int)iterator.next();
}
System.out.println("총점 : "+ total);
System.out.println("평균 : "+ total/collection.size());
System.out.println("최고점 : "+ Collections.max(collection));
System.out.println("최저점 : "+ Collections.min(collection));
}
}
'JAVA > 자바의정석' 카테고리의 다른 글
Chapter 11. 제네릭스 (0) | 2022.07.13 |
---|---|
Chapter 11. Iterator, ListIterator, Enumeration (0) | 2022.07.10 |
Chapter 11. Collection Framework - 3 (컬랙션 프레임웍의 구현체의 대하여 - Set) (0) | 2022.07.09 |
Chapter 11. Collection Framework - 2 (컬랙션 프레임웍의 구현체의 대하여 - List) (0) | 2022.07.09 |
Chapter 7. 제어자 (0) | 2022.07.09 |