Java programming

(22.10.24)Javaํ”„๋กœ๊ทธ๋ž˜๋ฐ:HashSet ์ •๋ ฌ ๋ฐฉ๋ฒ•๊ณผ Map(HashMap)

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 10. 24.

HashSet์˜ ์ค‘๋ณต์„ ํ”ผํ•ด์„œ ์ €์žฅํ•˜๊ธฐ

ํ•™์Šต๊ณผ์ •(Course)์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ ์ž‘์„ฑ

Course ๊ณผ์ •๋ช…(name), ๊ฐœ์„ค์—ฐ๋„(year), ์ฐจ์ˆ˜(num), ๋‹ด๋‹น๊ต์‚ฌ(teacher)๊ฐ€ ์žˆ๊ณ  ์ด์ค‘ ๊ณผ์ •๋ช…, ๊ฐœ์„ค์—ฐ๋„, ์ฐจ์ˆ˜๊ฐ€ ๋™์ผํ•˜๋ฉด ๋™์ผ๊ณผ์ •์œผ๋กœ  ๊ฐ„์ฃผํ•œ๋‹ค. ํ‚ค๋ณด๋“œ์—์„œ ์†์„ฑ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„์„œ Course๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.

๋™์ผํ•œ ๊ฐ์ฒด๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. ์ž…๋ ฅ๋œ Course ๋‚ด์šฉ์„ ํ™”๋ฉด์— ๋ชฉ๋ก์œผ๋กœ ํ‘œ์‹œํ•œ๋‹ค.

 

Main ํด๋ž˜์Šค ์ฝ”๋“œ

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
import java.util.HashSet;
import java.util.Scanner;
import java.util.Iterator;
import com.ezen.javaoop.Course;
public class ExceptionMain 
{
    public static void main(String[] args) 
    {
        HashSet<Course> colist = new HashSet<>();
        for(int i=0;i<5;i++) {
            Scanner kbd = new Scanner(System.in);
            System.out.print("๊ณผ์ •๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”.");
            String coname = kbd.nextLine().strip();
            System.out.print("๊ฐœ์„ค์—ฐ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.");
            int coyear = kbd.nextInt();
            kbd.nextLine();
            System.out.print("์ฐจ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.");
            int conum = kbd.nextInt();
            kbd.nextLine();
            System.out.print("๋‹ด๋‹น๊ต์‚ฌ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.");
            String coteacher = kbd.nextLine().strip();
        }
        Iterator<Course> iter =  colist.iterator();
        while(iter.hasNext()) {
            Course a = iter.next();
            System.out.println(a);
        }
    }
}
cs

 

Course ํด๋ž˜์Šค ์ฝ”๋“œ

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
31
32
33
34
import java.util.Objects;
 
public class Course 
{
    private String name;
    private int year;
    private int num;
    private String teacher;
    public Course() {}
    public Course(String name, int year, int num, String teacher) {
        this.setName(name);
        this.setYear(year);
        this.setNum(num);
        this.setTeacher(teacher);
    }
    @Override
    public boolean equals(Object obj) {
        Course other = (Course)obj;
        return  this.name.equals(other.name)&&
                this.year==(other.year)&&
                this.num==other.num;
    }
    @Override
    public String toString() {
        String print = String.format("%s\t%d\t%d\t%s", name, year, num, teacher);
                
        return print;
    }
    @Override
    public int hashCode() {
        
        return Objects.hash(name,year,num);
    }
}
cs

์ฝ˜์†” ๊ฐ’:

๊ณผ์ •๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”.์ž๋ฐ”
๊ฐœ์„ค์—ฐ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.2000
์ฐจ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.1
๋‹ด๋‹น๊ต์‚ฌ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.๊น€๋ญ์‹œ๊ธฐ
๊ณผ์ •๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”.์ž๋ฐ”
๊ฐœ์„ค์—ฐ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.2000
์ฐจ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.1
๋‹ด๋‹น๊ต์‚ฌ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.ํ™๊ธธ๋™
๊ณผ์ •๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”.ํŒŒ์ด์ฌ
๊ฐœ์„ค์—ฐ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.2010
์ฐจ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.2
๋‹ด๋‹น๊ต์‚ฌ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.๊น€์˜ฅ๋ถ„
๊ณผ์ •๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”.ํŒŒ์ด์ฌ
๊ฐœ์„ค์—ฐ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.2012
์ฐจ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.1
๋‹ด๋‹น๊ต์‚ฌ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.์ง„๋‹ฌ๋ž˜
๊ณผ์ •๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”.์ž๋ฐ”
๊ฐœ์„ค์—ฐ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.2000
์ฐจ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.1
๋‹ด๋‹น๊ต์‚ฌ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.ํ™ฉ์ˆœ์›
ํŒŒ์ด์ฌ 2010 2 ๊น€์˜ฅ๋ถ„
ํŒŒ์ด์ฌ 2012 1 ์ง„๋‹ฌ๋ž˜
์ž๋ฐ” 2000 1 ๊น€๋ญ์‹œ๊ธฐ

 

"์ž๋ฐ” 2000 1 ๊น€๋ญ์‹œ๊ธฐ"์™€ ๊ณผ์ •๋ช…, ๊ฐœ์„ค์—ฐ๋„, ์ฐจ์ˆ˜์ด ๊ฐ™์€ "์ž๋ฐ” 2000 1 ํ™ฉ์ˆœ์›"๊ณผ "์ž๋ฐ” 2000 1 ํ™๊ธธ๋™"์€ ๋นผ๊ณ  3๊ฐ€์ง€ ํ•ญ๋ชฉ๋งŒ ์ถœ๋ ฅ๋œ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. Hash์—์„œ ๋‚ด์šฉ์ด ๊ฐ™์Œ์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ equals() ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•ด์ค„๋• ํ•ญ์ƒ hashcode๋„ ๊ฐ™์ด ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•ด์ค˜์•ผํ•œ๋‹ค.


HashSet์„ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ด์ฃผ๊ณ  ์‹ถ์œผ๋ฉด ArrayList๋กœ ๋จผ์ € ๋ฐ”๊พธ์–ด ์ค˜์•ผํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด HashSet์€ ์ˆœ์„œ๋ฅผ ์ง€์ผœ์ฃผ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ArrayList๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ  Collection.sort() ๊ธฐ๋Šฅ์„ ์“ฐ๋ฉด ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋•Œ sort์— ์—๋Ÿฌ ํ‘œ์‹œ๊ฐ€ ๋œจ๋Š”๋ฐ ์ด๋Š” ์ž๋ฐ”์—์„œ ์ง€์›ํ•ด์ฃผ๋Š” String ํด๋ž˜์Šค ๊ฐ™์€ ๊ฒƒ์ด ์•„๋‹Œ ์ž‘์„ฑ์ž๊ฐ€ ๋งŒ๋“  Course ํด๋ž˜์Šค ์ด๊ธฐ ๋•Œ๋ฌธ์— Courseํด๋ž˜์Šค์—์„œ ์–ด๋– ํ•œ ์ˆœ์„œ๋กœ ๋‚˜์—ดํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•ด์ค˜์•ผํ•œ๋‹ค.

 

Main ํด๋ž˜์Šค ์ฝ”๋“œ

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
31
32
import java.util.HashSet;
import java.util.Iterator;
import com.ezen.javaoop.Course;
import java.util.ArrayList;
import java.util.Collections;
 
public class ExceptionMain 
{
    public static void main(String[] args) 
    {
        HashSet<Course> colist = new HashSet<>();
        
        colist.add(new Course("์ž๋ฐ”",2020,1,"ํ™๊ธธ๋™"));
        colist.add(new Course("ํŒŒ์ด์ฌ",2020,1,"ํ™๊ธธ๋™"));
        colist.add(new Course("์ž๋ฐ”",2020,1,"๊น€์žฅ๋ฏธ"));
        colist.add(new Course("์ž๋ฐ”",2022,1,"์ง„๋‹ฌ๋ž˜"));
        colist.add(new Course("์ž๋ฐ”",2022,2,"๊ณ ๊ธธ๋™"));
        colist.add(new Course("ํŒŒ์ด์ฌ",2020,2,"ํ™ฉ์ˆœ์›"));
        
        Iterator<Course> iter =  colist.iterator();
        while(iter.hasNext()) {
            Course a = iter.next();
            System.out.println(a);    
        }
        System.out.println("์ •๋ ฌํ›„");
        ArrayList<Course> arcolist = new ArrayList<>(colist);
        Collections.sort(arcolist);
        for(int i=0;i<arcolist.size();i++) {
            System.out.println(arcolist.get(i));
        }
    }
}
cs

Course ํด๋ž˜์Šค ์ฝ”๋“œ

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.util.Objects;
 
public class Course implements Comparable<Course>
{
    private String name;
    private int year;
    private int num;
    private String teacher;
    public Course() {}
    public Course(String name, int year, int num, String teacher) {
        this.setName(name);
        this.setYear(year);
        this.setNum(num);
        this.setTeacher(teacher);
    }
    
    @Override
    public boolean equals(Object obj) {
        Course other = (Course)obj;
        return  this.name.equals(other.name)&&
                this.year==(other.year)&&
                this.num==other.num;
    }
    @Override
    public String toString() {
        String print = String.format("%s\t%d\t%d\t%s", name, year, num, teacher);
                
        return print;
    }
    @Override
    public int hashCode() {
        
        return Objects.hash(name,year,num);
    }
    @Override
    public int compareTo(Course o) {
        // ํ˜„์žฌ ๊ฐ์ฒด๊ฐ€ ๋” ์ž‘๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋ ค๋ฉด -1๋ฆฌํ„ด(์ •๋ ฌ ์ƒ ๋จผ์ € ์œ„์น˜)
        //ํ˜„์žฌ ๊ฐ์ฒด๊ฐ€ ๋” ํฌ๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋ ค๋ฉด 1์„ ๋ฆฌํ„ด(์ •๋ ฌ ์ƒ ๋‚˜์ค‘ ์œ„์น˜)
        //ํ˜„์žฌ ๊ฐ์ฒด์™€ ๋™์ผํ•œ ํฌ๊ธฐ๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋ ค๋ฉด 0์„ ๋ฆฌํ„ด
        if(this.year<o.year) return -1;
        else if(this.year>o.year)return 1;
        else {
            if(this.num<o.num) return-1;
            else if(this.num<o.num) return 1;
            else return 0;
        }
    }
}
cs

์ฝ˜์†” ๊ฐ’:

ํŒŒ์ด์ฌ 2020 1 ํ™๊ธธ๋™
ํŒŒ์ด์ฌ 2020 2 ํ™ฉ์ˆœ์›
์ž๋ฐ” 2022 1 ์ง„๋‹ฌ๋ž˜
์ž๋ฐ” 2022 2 ๊ณ ๊ธธ๋™
์ž๋ฐ” 2020 1 ํ™๊ธธ๋™
์ •๋ ฌํ›„
ํŒŒ์ด์ฌ 2020 1 ํ™๊ธธ๋™
์ž๋ฐ” 2020 1 ํ™๊ธธ๋™
ํŒŒ์ด์ฌ 2020 2 ํ™ฉ์ˆœ์›
์ž๋ฐ” 2022 1 ์ง„๋‹ฌ๋ž˜
์ž๋ฐ” 2022 2 ๊ณ ๊ธธ๋™

 

6๊ฐœ์˜ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ด ์คฌ์ง€๋งŒ ์ค‘๋ณต๋œ 1๊ฐ€์ง€๋Š” ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค. ์ •๋ ฌ ํ•ด์ฃผ์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ HashSet์„ ์ถœ๋ ฅํ–ˆ์„ ๋• "์ž๋ฐ” 2020 1 ํ™๊ธธ๋™"์ด ์ •๋ ฌ๋˜์ง€ ์•Š์€์ฑ„ 5๋ฒˆ์งธ ๋‚˜์˜ค๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์—ฐ๋„๋ณ„๋กœ ๋จผ์ € ์ •๋ ฌํ•ด์ฃผ๊ณ  ์—ฐ๋„๊ฐ€ ๊ฐ™๋‹ค๋ฉด ์ฐจ์ˆ˜๋ณ„๋กœ ์ •๋ ฌํ•ด์ฃผ๋Š” compare To() ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•ด์ฃผ๋‹ˆ๊น ์ •๋ ฌ๋œ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


โ—Mapโ—

key ์™€ value๋ฅผ ์Œ์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

์ฃผ๋กœ์“ฐ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ๋Š” HashMap<โ—‹โ—‹โ—‹,โ—โ—โ—> ๊ณผ HashTable์ด ์žˆ๋‹ค.

์ˆœ์ฐจ ๊ฒ€์ƒ‰์„ ํ•˜์ง€ ์•Š์•„๋„ ๋ผ์„œ, ๊ฐ€์žฅ ๋น ๋ฅธ ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ญ‰ ํ™•์ผํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.HashMap;
public class ExceptionMain 
{
    public static void main(String[] args) 
    {
        HashMap<String,String> map = new HashMap<>();
        map.put("a""ํ•ด๋ฆฐ");
        map.put("b""ํ•˜๋‹ˆ");
        map.put("c""๋ฏผ์ง€");
        map.put("c""ํ˜œ์ธ");
        map.put("e""๋‹ค๋‹ˆ์—˜");
        
        String name = map.get("a");
        System.out.println(name);
        String name2 = map.get("c");
        System.out.println(name2);
    }
}
cs

์ฝ˜์†” ๊ฐ’:

ํ•ด๋ฆฐ

ํ˜œ์ธ

 

ํ‚ค๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๊ณ  value๊ฐ€ ๋ฎ์–ด์จ์กŒ๊ธฐ ๋•Œ๋ฌธ์— c-๋ฏผ์ง€ ๋Œ€์‹ ์— c-ํ˜œ์ธ ๊ฐ’์ด ๋‚˜์ค‘์— ์ €์žฅ๋˜๋ฏ€๋กœ ํ˜œ์ธ์ด ์ถœ๋ ฅ๋œ๋‹ค.


๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ๊ธฐ ์œ„ํ•ด์„  keyset()์„ ์ด์šฉํ•˜์—ฌ Map์„ Set ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ๊ณ  ๋ฐ˜๋ณต์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ๋ฉด๋œ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.HashMap;
public class ExceptionMain 
{
    public static void main(String[] args) 
    {
        HashMap<String,String> map = new HashMap<>();
        map.put("a""ํ•ด๋ฆฐ");
        map.put("b""ํ•˜๋‹ˆ");
        map.put("c""๋ฏผ์ง€");
        map.put("c""ํ˜œ์ธ");
        map.put("e""๋‹ค๋‹ˆ์—˜");
        
        Set<String> keyset = map.keySet();
        Iterator<String> iter = keyset.iterator();
        while(iter.hasNext()) {
            String key = iter.next();
            String val = map.get(key);
            System.out.println(val);
        }
    }
}
cs

 

์ฝ˜์†” ๊ฐ’:

ํ•ด๋ฆฐ
ํ•˜๋‹ˆ
ํ˜œ์ธ
๋‹ค๋‹ˆ์—˜


์ „๋ถ€ ์‚ญ์ œ => .clear

์ˆ˜์ •ํ•˜๊ธฐ=> .replace()

ํ‚ค์—์„œ ๊ฒ€์ƒ‰=> .containsKey()

๊ฐ’์—์„œ ๊ฒ€์ƒ‰ =>.containValue()

์‚ญ์ œ=> .remove()

ํ‚ค๋นผ๊ณ  ๊ฐ’๋งŒ ๋ชฉ๋ก์œผ๋กœ ํ‘œ์‹œ=> .values()


Map์„ ํ™œ์šฉํ•œ CRUD ์‹ค์Šต

User (uid, name, email, phone)

Map์— key, value๋ฅผ ์ €์žฅํ•  ๋•Œ key๋กœ์„œ uid๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  value์—๋Š” User ๊ฐ์ฒด์˜ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

HashMap์„ ์ด์šฉํ•˜์—ฌ CRUD๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•„๋ผ

๋ชฉ๋ก์„ ํ‘œ์‹œํ• ๋•Œ๋Š” name ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

Main ํด๋ž˜์Šค ์ฝ”๋“œ

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Scanner;
import com.ezen.javaoop.User;
 
public class Main2 
{
    static enum Menu { LIST, ADD, FIND, UPDATE, DELETE, EXIT};
    public static void main(String[] args) 
    {
         HashMap<String,User> map = new HashMap<>();
         Menu menu;
            boolean go = true;
            while(go){
                menu = menu();
                switch(menu)
                {
                case LIST:  list(map);        break;
                case ADD:   add(map);        break;
                case FIND:  find(map);        break;
                case UPDATE:update(map);    break;
                case DELETE:delete(map);    break;
                case EXIT:  go=false;        break;
                defaultSystem.out.println("๋ฉ”๋‰ด์ž…๋ ฅ ์˜ค๋ฅ˜");
                }
            }
            System.out.println("ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ");
    }
    private static Menu menu(){
        Scanner kbd = new Scanner(System.in);
        System.out.print("๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):");
        String m = kbd.nextLine().strip();
        Menu menu = null;
        switch(m)
        {
            case "s": menu = Menu.LIST;     break;
            case "a": menu = Menu.ADD;      break;
            case "f": menu = Menu.FIND;     break;
            case "u": menu = Menu.UPDATE;   break;
            case "d": menu = Menu.DELETE;   break;
            case "x": menu = Menu.EXIT;     break;
            default : menu = null
        }
        return menu;
    }
    private static void add(HashMap<String,User> map){
        Scanner kbd = new Scanner(System.in);
        
        System.out.print("์•„์ด๋””:");
        String uid = kbd.nextLine().strip();
        System.out.print("์ด๋ฆ„:");
        String name = kbd.nextLine().strip();
        System.out.print("์ด๋ฉ”์ผ:");
        String email = kbd.nextLine().strip();
        System.out.print("์ „ํ™”๋ฒˆํ˜ธ:");
        int phone = kbd.nextInt();
        kbd.nextLine();
 
        map.put(uid, new User(uid, name,email,phone));
    }
    private static String getKeyword(){
        Scanner kbd = new Scanner(System.in);
        System.out.print("๊ฒ€์ƒ‰ํ•  ID๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?");
        String newid = kbd.nextLine().strip();
        return newid;
    }
    private static void list(HashMap<String,User> map){
        Collection<User> coll = map.values();
        ArrayList<User> list = new ArrayList<>(coll);
        Collections.sort(list);
        System.out.println();
        System.out.println("์•„์ด๋””\t์ด๋ฆ„\t์ด๋ฉ”์ผ\t์ „ํ™”๋ฒˆํ˜ธ");
        for(int i=0;i<list.size();i++) {
            System.out.println(list.get(i));
        }
    }
    private static void find(HashMap<String,User> map) {
        String key = getKeyword();
        if(map.containsKey(key)){
            System.out.println("์•„์ด๋””\t์ด๋ฆ„\t์ด๋ฉ”์ผ\t์ „ํ™”๋ฒˆํ˜ธ");
            System.out.println(map.get(key));
        }else {
            System.err.println("์ฐพ๋Š” ์‚ฌ์šฉ์ž ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.");
        }
    }
    private static void update(HashMap<String,User> map) {
        String key = getKeyword();
        Scanner kbd = new Scanner(System.in);
        if(map.containsKey(key)){
            System.out.println("๊ฒ€์ƒ‰์„ฑ๊ณต");
            System.out.println("์ˆ˜์ •ํ•  ์ด๋ฆ„:");
            String name = kbd.nextLine().strip();
            System.out.println("์ˆ˜์ •ํ•  ์ด๋ฉ”์ผ:");
            String email = kbd.nextLine().strip();
            System.out.println("์ˆ˜์ •ํ•  ์ „ํ™”๋ฒˆํ˜ธ:");
            int phone = kbd.nextInt();
            kbd.nextLine();
            map.replace(key, new User(key, name,email,phone));
        }
    }
    private static void delete(HashMap<String,User> map){
        String key = getKeyword();
        if(map.containsKey(key)){
            map.remove(key);
            System.out.println("์‚ญ์ œ ์„ฑ๊ณต");
        }else {
            System.out.println("์‚ญ์ œ ๋Œ€์ƒ ๊ฒ€์ƒ‰ ์‹คํŒจ");
        }
    }
}
 
cs

User ํด๋ž˜์Šค ์ฝ”๋“œ

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
31
32
33
34
35
36
37
38
39
40
41
42
public class User implements Comparable<User>
{
    private String uid;
    private String name;
    private String email;
    private int phone;
    
    public User() {}
    public User(String uid, String name, String email, int phone) {
        this.uid = uid;
        this.name = name;
        this.email = email;
        this.phone = phone;
    }
    @Override
    public String toString() {
        String print = String.format("%s\t%s\t%s\t%d",uid, name, email,phone);    
        return print;
    }
    @Override
    public int compareTo(User other) {
        return this.uid.compareTo(other.uid);    
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public int getPhone() {
        return phone;
    }
    public void setPhone(int phone) {
        this.phone = phone;
    }
}
cs

์ฝ˜์†” ๊ฐ’: 

๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):a
์•„์ด๋””:kkk
์ด๋ฆ„:paul
์ด๋ฉ”์ผ:bjdf@nad.com
์ „ํ™”๋ฒˆํ˜ธ:546512
๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):a
์•„์ด๋””:aaa
์ด๋ฆ„:bob
์ด๋ฉ”์ผ:fsko@nad.com
์ „ํ™”๋ฒˆํ˜ธ:415475
๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):s

์•„์ด๋”” ์ด๋ฆ„ ์ด๋ฉ”์ผ ์ „ํ™”๋ฒˆํ˜ธ
aaa bob fsko@nad.com 415475
kkk paul bjdf@nad.com 546512
๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):f
๊ฒ€์ƒ‰ํ•  ID๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?aaa
์•„์ด๋”” ์ด๋ฆ„ ์ด๋ฉ”์ผ ์ „ํ™”๋ฒˆํ˜ธ
aaa bob fsko@nad.com 415475
๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):u
๊ฒ€์ƒ‰ํ•  ID๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?aaa
๊ฒ€์ƒ‰์„ฑ๊ณต
์ˆ˜์ •ํ•  ์ด๋ฆ„:
jun
์ˆ˜์ •ํ•  ์ด๋ฉ”์ผ:
fwkfl@nad.com
์ˆ˜์ •ํ•  ์ „ํ™”๋ฒˆํ˜ธ:
6845155
๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):s

์•„์ด๋”” ์ด๋ฆ„ ์ด๋ฉ”์ผ ์ „ํ™”๋ฒˆํ˜ธ
aaa jun fwkfl@nad.com 6845155
kkk paul bjdf@nad.com 546512
๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):d
๊ฒ€์ƒ‰ํ•  ID๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?kkk
์‚ญ์ œ ์„ฑ๊ณต
๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):s

์•„์ด๋”” ์ด๋ฆ„ ์ด๋ฉ”์ผ ์ „ํ™”๋ฒˆํ˜ธ
aaa jun fwkfl@nad.com 6845155
๋ชฉ๋ก(s), ์ถ”๊ฐ€(a), ๊ฒ€์ƒ‰(f), ์ˆ˜์ •(u), ์‚ญ์ œ(d), ์ข…๋ฃŒ(x):x
ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ

๋Œ“๊ธ€