나라 이름과 인구를 입력하세요.(예: Korea 5000)
나라 이름, 인구 >> Korea 5000
나라 이름, 인구 >> USA 1000000
나라 이름, 인구 >> Swiss 2000
나라 이름, 인구 >> France 3000
나라 이름, 인구 >> 그만
인구 검색 >> France
France의 인구는 3000
인구 검색 >> 스위스
스위스 나라는 없습니다.
인구 검색 >> 그만
============
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
/*
나라 이름과 인구를 입력하세요.(예: Korea 5000)
나라 이름, 인구 >> Korea 5000
나라 이름, 인구 >> USA 1000000
나라 이름, 인구 >> Swiss 2000
나라 이름, 인구 >> France 3000
나라 이름, 인구 >> 그만
인구 검색 >> France
France의 인구는 3000
인구 검색 >> 스위스
스위스 나라는 없습니다.
인구 검색 >> 그만
============
*/
public class HashScannerCountry {
public static void main(String[] args) {
HashMap<String, Integer> country =
new HashMap<String, Integer>();
Scanner sc = new Scanner(System.in);
System.out.println("나라 이름과 인구를 입력하세요.");
while (true) {
System.out.print("나라 이름, 인구 >> ");
String name = sc.next();
if (name.equals("그만")) {
System.out.println("입력을 종료합니다.");
break;
}
int popu = sc.nextInt();
country.put(name, popu);
}
System.out.println();
while (true) {
System.out.print("인구 검색 >> ");
String con = sc.next();
if (con.equals("그만")) {
System.out.println("검색을 종료합니다.");
break;
}else if(!country.containsKey(con)) {
//map의 key에 key가 있지 않으면
System.out.println("[" + con + "]나라는 없습니다.");
continue;
}
System.out.println
(con +"의 인구는 "+ country.get(con) + "명 입니다.");
//키값으로 내용 출력
}
}
}
어우어려워.....이해안돼..
큐는 가장 먼저 넣은게 가장 나중에 나옴.
스택은 가장 먼저 넣은게 가장 먼저 나옴.
출처 : https://luckyguystory.tistory.com/22 (강사님 블로그)
TreeMap<Integer, String> map = new TreeMap<>();
map.put(45, "Brown");
map.put(37, "James");
map.put(23, "Martin");
public class HashMapExample {
public static void main(String[] args) {
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(45, "Brown");
map.put(37, "James");
map.put(23, "Martin");
// Key만 담고 있는 컬렉션 인스턴스 생성
Set<Integer> ks = map.keySet();
// 전체 Key 출력(for-each문 기반)
for (Integer n : ks) {
System.out.print(n.toString() + '\t');
}
System.out.println();
// 전체 Value 출력(for-each문 기반)
for (Integer n : ks) {
System.out.print(map.get(n).toString() + '\t');
}
System.out.println();
// 전체 Value 출력 (반복자 기반)
for (Iterator<Integer> itr = ks.iterator(); itr.hasNext();) {
System.out.print(map.get(itr.next()) + '\t');
}
System.out.println();
}
}
이름과 학점>> 강나래 3.1
이름과 학점>> 니보라 3.3
이름과 학점>> 강하늘 4.3
이름과 학점>> 울나리 4.0
이름과 학점>> 그만해 3.7
장학생 선발 학점 기준 입력>> 3.2
장학생 명단: 그만해 강하늘 니보라 울나리
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
/*
이름과 학점>> 강나래 3.1
이름과 학점>> 니보라 3.3
이름과 학점>> 강하늘 4.3
이름과 학점>> 울나리 4.0
이름과 학점>> 그만해 3.7
장학생 선발 학점 기준 입력>> 3.2
장학생 명단: 그만해 강하늘 니보라 울나리
*/
public class HashScannerGrade {
public static void main(String[] args) {
int MAX_STUDENTS = 5;
HashMap<String, Double> Grade = new HashMap<>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < MAX_STUDENTS; i++) {
System.out.print("이름과 학점 >> ");
String name = sc.next();
double score = sc.nextDouble();
Grade.put(name, score);
}
System.out.print("장학생 선발 학점 기준 입력 >> ");
double standard = sc.nextDouble();
Set<String> keys = Grade.keySet();
System.out.print("장학생 명단 : ");
for (String key : keys) {
if(standard <= Grade.get(key)) {
System.out.print(key +' ');
// key = 현재 String.
// 그래서 이름 불러올라면 key를 불러오면 되고
// 성적(double) - value 불러올라면 .get(key)를 해야됨.
// key값이 앞에꺼. value값이 뒤에꺼.
}
}
sc.close();
}
}
젠장야로... 너무 어렵잖냐................