JAVA

[JAVA] 컬렉션 프레임워크 _ Map컬렉션(HashMap)

(งᐛ)ว 2023. 9. 2. 00:09
728x90

Map컬렉션

- key와 value가 하나의 데이터로 저장됨

- key는 value를 조회하기 위한 고유한 존재

- Map 인터페이스를 구현한 클래스는 HashMap, TreeMap 등

- index가 없지만 key가 index의 역할을 대신함 

- 많은 양의 데이터를 조회하는데 성능이 매우 뛰어남 

 

 

HashMap

 

//HashMap 생성(선언)

HashMap<Integer,Character> map = new HashMap<>();

 

 

//HashMap에 데이터(요소)추가하기

map.put(100,'A');

map.put(25,'B');

map.put(33,'C');

//map에는 중복되는 value를 추가할 수 있다.

map.put(40,'A');

System.out.println(map);

 

 

//map에 key값은 중복될 수 없다. 존재하는 key에 새로운 value를 대입하면 value를 갱신해버림 (이전 value 사라짐)

map.put(100,'Z'); //ex. key100에대한 value가 바뀜!

System.out.println(map);

 

 

map에 없는 key로 value를 추가하면 추가

map에 있는 key로 value를 추가하면 갱신

 

 

//map에서 데이터 삭제하기

//key를 통해 해당value를 삭제해야함

map.remove(100);

System.out.println(map);

 

 

//map에 들어있는 요소의 개수 확인하기

System.out.println("map의 요소의 개수 : "+map.size());

 


 

//HashMap 생성(선언)시 key값으로 String도 가능

HashMap<String,Float> map = new HashMap<>();

 

 

//HashMap에 데이터(요소)추가하기

map.put("k1", 100.0f);

map.put("k2", 3.14f);

map.put("k3", 4.15f);

System.out.println(map);

 

 

//map에서 특정 value값을 조회하기

float result = map.get("k2");

System.out.println(result);

 

 

//유용한 map 메서드 (존재여부확인)

//containsKey() : map 객체 안에 인자로 전달된 key값이 존재하면 true, 없으면 false

if(map.containsKey("k3")) {

System.out.println("k3라는 key가 존재합니다.");

}

//containsValue() : map 객체안에 인자로 전달된 value가 있으면 true, 없으면 false

if(map.containsValue(3.14f)) {

System.out.println("3.14라는 value가 존재합니다.");

}

 


1️⃣ 키보드에서 ID와 PW를 입력받는 코드 작성하기

예시)

ID : AAA

PW : 1111

아이디가 존재하지 않습니다.

 

ID : LEE

PW : 3333

비밀번호 불일치 

 

ID : KIM

PW : 1111

로그인 성공

 

HashMap<String,Integer> map = new HashMap<>();

map.put("KIM", 1111);

map.put("LEE", 2222);

map.put("PARK", 3333);

map.put("CHOI", 4444);

 

 

//아이디 틀린경우, 아이디는 맞고 비밀번호 틀린경우, 로그인 성공한경우...  총 3가지 경우의 수  !

 

Scanner sc = new Scanner(System.in);

 

while(true) {

     System.out.print("ID : ");

     String id = sc.next();

     System.out.print("PW : ");

     int pw = sc.nextInt();

 

 

     if(!map.containsKey(id)) { //아이디가 틀렸다? -> 존재하지 않는다! ->map에서 key가 id인데 map에 해당 key값이 없는 경우 

          System.out.println("아이디가 존재하지 않습니다.");

     }else if(map.get(id)!=pw) { //pw와 id 일치여부 검증. pw 존재여부확인이 아님 !!!

          System.out.println("비밀번호 불일치");

     } else {

          System.out.println("로그인 성공");

          break;

     }

}

 

 

728x90

 

728x90