HashMap 코드 예제들
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest1 {
public static void main(String[] args) {
//Map 예제
//<>안에 두개써야돼. List랑 Set은 데이터1개만다루고 Map은 2개
HashMap<String, String> map = new HashMap<String, String>();
//put(key, value) : key와 value의 값을 저장 => key라는 이름에 value라는 값을 저장
//key의 값이 중복되지 않으면 null을 리턴하고, 중복되면 이전에 저장된 value값을 리턴
System.out.println(map.put("과일", "사과")); // 이전에 저장된게 없어서 중복이안됨=> null
System.out.println(map.put("과일", "포도")); // key가 중복되서 앞에있던 value값을 리턴
//containsKey(객체) : key값에 객체와 일치하는 정보가 있는지 없는지 알려줌
System.out.println("Key에 과일이 있습니까? "+ map.containsKey("과일")); //true
System.out.println("Key에 포도가 있습니까? "+ map.containsKey("포도")); //false
//containsValue(객체) : value값에 객체와 일치하는 정보가 있는지 없는지 알려줌
System.out.println("Value에 과일이 있습니까? "+ map.containsValue("과일")); //false
System.out.println("Value에 포도가 있습니까? "+ map.containsValue("포도")); //true
//get(객체) : key값이 객체와 일치하는 정보의 value값을 가져옴
System.out.println("Key값이 과일인 객체의 value값은? "+ map.get("과일")); //포도
//get쓰려고 일단 저장값 늘리는 중
map.put("학용품", "연필");
map.put("탈것", "자전거");
map.put("전자기기", "스마트폰");
map.put("그릇", "텀블러");
// 출력방법1: set을 이용하여 Iterator를 사용
// Key값들을 Set으로 만든 후, Iterator사용 (만들어진 set을 이용하여 반복문을 사용)
// keySet(): 맵의 key값들을 하나의 Set으로 만들어주는 메소드
Set<String> keySet=map.keySet(); //keyset통해서 key값을 set으로 만듬
Iterator<String> it = keySet.iterator();
while(it.hasNext()) {
String key = it.next(); //iterator통해서 key값가져와
String value = map.get(key); //해당키와 일치하는 value값을 가져오기
System.out.println(key + " : " + value);
}
System.out.println("----------------------------------------");
// 출력방법2: set을 이용하여 Iterator를 사용
// key값과 value값을 가지는 하나의 클래스인 Entry클래스를 이용하는 방법
// entrySet() : Entry클래스를 이용한 Set을 변환
Set<Map.Entry<String, String>> entrySet = map.entrySet();
Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();
while(it2.hasNext()) {
Map.Entry<String, String> tmp = it2.next();
String key= tmp.getKey();
String value = tmp.getValue();
System.out.println(key + " : " + value);
}
}
}
class Entry{ //하나의 클래스에 key와 value를 객체로 넣고 set으로 만들어
String key;
String value;
}
map출력 방법1,2
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest3 {
public static void main(String[] args) {
HashMap<String,Integer> mapTest =new HashMap<String,Integer>();
for(int i=0; i<10; i++) {
mapTest.put("사과"+(i+1), 10*i); //출력하면 대체 왜 사과0이 아니라 사과8부터 나와?
}
// map출력 방법1
//keySet(): 맵의 key값들을 하나의 Set으로 만들어주는 메소드
Set<String> keyName = mapTest.keySet();
Iterator<String> key = keyName.iterator();
while(key.hasNext()) {
String key1 = key.next();
Integer value1= mapTest.get(key1);
System.out.println(key1 + ", " + value1);
}
//map출력 방법2
// entrySet() : Entry클래스를 이용한 Set을 변환
Set<Map.Entry<String, Integer>> alSet= mapTest.entrySet();
Iterator<Map.Entry<String, Integer>> it = alSet.iterator();
while(it.hasNext()) {
Map.Entry<String, Integer> tmp = it.next();
String appleName = tmp.getKey();
Integer price = tmp.getValue();
System.out.println(appleName+", "+price);
}
}
}
class appleList{
String name;
Integer price;
}
회원가입, 로그인하는 프로그램 만드는 예제
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class MapTest2 {
public static void main(String[] args) {
/* 다음 두 가능을 가진 프로그램을 작성하세요.
* 1. 회원 가입
* 2. 로그인
* 3. 종료
* 예시)
* 1. 회원가입
* 2. 로그인
* 3. 종료
* 메뉴 선택 : 1
* 회원가입
* 아이디 : abc123
* 비밀번호: abc123
* 회원가입되었습니다.
* 1. 회원가입
* 2.로그인
* 3. 종료
* 메뉴 선택 : 1
* 아이디 : abc123
* 이미 가입된 회원입니다.
* 1. 회원가입
* 2. 로그인
* 3. 종료
* 메뉴 선택: 2
* 아이디 : abc123
* 비밀번호 : abc123
* 로그인 성공
* 메뉴 선택: 2
* 아이디 abc123
* 비밀번호 : 1234
* 로그인 실패
* */
Scanner scan = new Scanner (System.in);
String answer;
HashMap<String,String> signUp = new HashMap<String,String>();
do {
System.out.println("-----메뉴------ \\n 1.회원가입\\n 2.로그인 \\n 3.종료\\n--------------" );
System.out.print("메뉴를 선택하세요: ");
answer = scan.next();
switch(answer) {
case "1":
System.out.print("아이디 :");
String id = scan.next();
if(signUp.containsKey(id)) {
System.out.println("이미 사용 중인 아이디입니다.");
break;
}
System.out.print("비밀번호 :");
String pw = scan.next();
signUp.put(id,pw);
break;
case "2":
System.out.print("아이디 :");
id=scan.next();
System.out.print("비밀번호 :");
pw=scan.next();
if(!signUp.get(id).equals(pw)) {
System.out.print("잘못된 입력입니다.");
break;
}
System.out.println("로그인되었습니다. ");
break;
case "3": System.out.println("프로그램이 종료됩니다."); break;
default: System.out.println("잘못된 입력입니다. ");break;
}
}while(!answer.equals("3"));
}
}