나라 이름과 인구를 입력하세요.(예: Korea 5000)
나라 이름, 인구 >> Korea 5000
나라 이름, 인구 >> USA 1000000
나라 이름, 인구 >> Swiss 2000
나라 이름, 인구 >> France 3000
나라 이름, 인구 >> 그만
인구 검색 >> France
France의 인구는 3000
인구 검색 >> 스위스
스위스 나라는 없습니다.
인구 검색 >> 그만
============
package MyselfPrac;
import java.util.*;
public class CountryHash {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<String, Integer> map = new HashMap<>();
System.out.println("나라 이름과 인구를 입력하세요. (예) 한국 4000 \n 항상 <그만>을 입력하면 종료됩니다.");
try {
while(true) {
System.out.print("나라 이름 인구 >> ");
String ct = sc.next();
if(ct.equals("그만")) {
break;
}
int po = sc.nextInt();
map.put(ct, po);
}
System.out.println();
while(true) {
System.out.print("인구 검색 >> ");
String sh = sc.next();
if(sh.equals("그만")){
System.out.println("종료");
break;
}
else if(!map.containsKey(sh)) {
System.out.println("그런 나라는 없어요!");
continue;
}
else {
System.out.println("검색한 나라: " + sh + " , 인구 수 : " + map.get(sh));
}
}
}catch (Exception e) {
e.printStackTrace();
System.out.println("잘못된 입력입니다. 프로그램을 종료합니다.");
}
}
}
📌Map은 선언 시 <key, value>로 값을 넣는다
Key와 Value는 한 쌍으로 Key로 식별하고 Value에 사용할 값을 넣는 식이다.
여기서 Key는 중복이 불가능하고, 동일한 Key 값으로 값을 넣을 시 최근에 넣은 값이 적용된다.
📌Map의 주요 메소드들
Map 안에 값 넣기 👉 Map.put(key,value);
Map 안의 값 가져오기 👉 Map.get(key);
Map 크기 확인 👉 Map.size();
Map 안의 내용 변경하기 👉 Map.replace(key, value);
Map 안에 특정 Key, Value 들었는지 확인 👉 Map.containsKey(key); Map.containsValue(value);
Map의 크기가 0인지 확인 👉 Map.isEmpty();
Map 안의 내용 삭제 👉 Map.remove(key);
Key가 있으면 Value 없으면 default 호출 👉 Map.getOrDefault(key, default); - Map에 key에 해당하는 값이 없을 경우 default 호출
Key가 없거나 Value가 null일때만 삽입 👉 Map.putIfAbsent(key, value);
HashMap, TreeMap, HashTable, LinkedHashMap 으로 선언이 가능한데 차이점은 아래와 같다
👉 HashMap
👉 TreeMap
👉 LinkedHashMap
👉 HashTable
<TreeMap<Integer, String> map = new TreeMap<>();
map.put(45, "Brown");
map.put(37, "James");
map.put(23, "Martin");
------------------------------------------------------------------------------
import java.util.*;
public class TreeValue {
public static void main(String[] args) {
TreeMap<Integer, String> map = new TreeMap<>();
map.put(45, "Brown");
map.put(37, "James");
map.put(23, "Martin");
Set<Integer> keys = map.keySet();
for (Integer s : keys) {
System.out.println(map.get(s));
}
}
}
이름과 학점>> 강나래 3.1
이름과 학점>> 니보라 3.3
이름과 학점>> 강하늘 4.3
이름과 학점>> 울나리 4.0
이름과 학점>> 그만해 3.7
장학생 선발 학점 기준 입력>> 3.2
장학생 명단: 그만해 강하늘 니보라 울나리
package MyselfPrac;
import java.util.*;
public class GradeHashPrac {
public static void main(String[] args) {
final int MAX_STUDENT = 5;
Scanner sc = new Scanner(System.in);
HashMap<String, Double> student = new HashMap<String, Double>();
System.out.println("5명의 학생 이름과 학점을 입력해주세요. 예) 홍길동 4.5");
try {
for (int i = 1; i <= MAX_STUDENT; i++) {
System.out.print("이름과 학점 >> ");
String n = sc.next();
double gd = sc.nextDouble();
student.put(n, gd);
}
Set<String> keys = student.keySet();
System.out.print("장학생 선발 학점 기준 입력 >> ");
double gs = sc.nextDouble();
System.out.print("장학생명단 : ");
for (String key : keys) {
if(student.get(key)>= gs) {
System.out.print(key + ' ');
}
}
sc.close();
}catch (Exception e) {
e.printStackTrace();
System.out.println("오류. 종료합니다.");
}
}
}
엄마 정말 큰 도움이 되었어요.... 늘 감사합니다.....