개발 수업/JAVA
[Java] 컬렉션 프레임워크/Map컬렉션(HashMap)
오늘 하루s
2023. 5. 24. 20:13
728x90
더보기
Day19-1. 230524
컬렉션 프레임워크
Map컬렉션
HashMap
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
|
package chap13;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapMain {
public static void main(String[] args) {
//Map인터페이스를 참조하는 HashMap객체 생성
Map<Student,Integer> map1 = new HashMap<Student,Integer>();
map1.put(new Student(1, "홍길동", "경영", '여'), 100); //Integer
map1.put(new Student(2, "이순신", "컴공", '남'), 95);
map1.put(new Student(3, "세종대왕", "국문", '여'),90);
map1.put(new Student(3, "세종대왕", "국문", '남'),0);
map1.put(new Student(4, "세종대왕", "국문", '남'),90);
//동등객체의 기준은 학번
//=>학번이 중복되면 덮어씌어짐.
int size1 = map1.size(); //Key개수
System.out.println("총 학생수:"+size1); //학생수출력
//value출력->모든 학생의 점수를 출력
Set<Student> keys1= map1.keySet();
Iterator<Student> iter1= keys1.iterator();
while(iter1.hasNext()) {
Student key = iter1.next();
int jumsu = (Integer)map1.get(key);
System.out.println(key+"의 점수:"+jumsu);
}
System.out.println("-----------------------");
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("홍길동",100); //Integer
map.put("이순신",95);
map.put("세종대왕",90);
map.put("세종대왕",9);
int size = map.size(); //Key개수
System.out.println("총 학생수:"+size); //학생수출력
//value출력->모든 학생의 점수를 출력
Set<String> keys= map.keySet();
Iterator<String> iter= keys.iterator();
while(iter.hasNext()) {
String key = iter.next();
int jumsu = (Integer)map.get(key);
System.out.println(key+"의 점수:"+jumsu);
}
}
}
|
cs |
더보기
* 실행 결과
총 학생수:4
1학번/홍길동의 점수:100
2학번/이순신의 점수:95
3학번/세종대왕의 점수:0
4학번/세종대왕의 점수:90 //학번이 중복될 경우 같은 키로 인식
-----------------------
총 학생수:3
홍길동의 점수:100
이순신의 점수:95
세종대왕의 점수:9 //이름이 같을 경우 같은 키로 인식
hashCode()와 equals() 재정의>
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
|
package chap13;
public class Student {
//필드
private int stuNo; //학번
private String stuName; //학생명
private String major; //전공
private char gender; //성별
//생성자
public Student() {}
public Student(int stuNo, String stuName, String major, char gender) {
this.stuNo = stuNo;
this.stuName = stuName;
this.major = major;
this.gender = gender;
}
//메서드
@Override
public String toString() {
return this.stuNo+"학번/"+this.stuName;
}
@Override
public int hashCode() {
return this.stuNo;
}
@Override
//자신과 (매개변수 Object obj변수에 담긴)비교객체가 동일하면 true리턴, 그렇지않으면 false리턴
public boolean equals(Object obj) {
//obj!=null : 참조변수 obj에 null이면 안된다 -> 객체주소가 존재
//obj instanceof Student : 참조변수 obj의 객체가 Student클래스의 객체라면 true
if( (obj!=null) && (obj instanceof Student) ){
Student student = (Student)obj; //(Student)obj 참조변수 obj의 클래스를 Student클래스로 강제형변환
return this.stuNo == student.stuNo; //갹체자신의 학번==매개변수에 담긴 학생의 학번
}else {
return false;
}
}
}
|
cs |
728x90