티스토리 뷰
1. 아래의 출력이 나오도록 만드시오.
public class HashPerson {
public static void main(String[] args) {
HashSet<Person> hSet = new HashSet<Person>();
hSet.add(new Person("LEE", 10));
hSet.add(new Person("LEE", 10));
hSet.add(new Person("PARK", 35));
hSet.add(new Person("PARK", 35));
System.out.println("저장된 데이터 수: " + hSet.size());
//System.out.println(hSet);
}
}
/*
저장된 데이터 수: 2
[LEE(10세), PARK(35세)]
*/
방법1. a.k.a왠지 있어보이는 코드
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
|
import java.util.HashSet;
class Person{
private String name;
private int age;
public Person(String name, int age) {
this.age =age;
this.name =name;
}
@Override
public String toString() {
return String.valueOf(name +"(" +age +"세)");
}
@Override
public int hashCode() {
return age % 4;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Person) { //형변환 가넝
Person person = (Person) obj;
if(person.name.equals(((Person) obj).name))
return true;
} return false;
}
}
public class HashPerson {
public static void main(String[] args) {
HashSet<Person> hSet = new HashSet<Person>();
hSet.add(new Person("LEE", 10));
hSet.add(new Person("LEE", 10));
hSet.add(new Person("PARK", 35));
hSet.add(new Person("PARK", 35));
System.out.println("저장된 데이터 수: " + hSet.size());
System.out.println(hSet);
}
}
|
cs |
선생님 방법
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
|
import java.util.HashSet;
class Person{
private String name;
private int age;
public Person(String name, int age) {
this.age =age;
this.name =name;
}
@Override
public String toString() {
return String.valueOf(name +"(" +age +"세)");
}
@Override
public int hashCode() {
return age / 10;
}
@Override
public boolean equals(Object obj) {
if(this.name.equals(((Person)obj).name) &&
age ==((Person)obj).age)
return true;
else
return false;
}
}
public class HashPerson {
public static void main(String[] args) {
HashSet<Person> hSet = new HashSet<Person>();
hSet.add(new Person("LEE", 10));
hSet.add(new Person("LEE", 10));
hSet.add(new Person("PARK", 35));
hSet.add(new Person("PARK", 35));
System.out.println("저장된 데이터 수: " + hSet.size());
System.out.println(hSet);
}
}
|
cs |
2. 아래와 같이 출력이 나오도록 프로그래밍을 하시오.
HashSet<Num> set = new HashSet<>();
set.add(new Num(7799));
set.add(new Num(9955));
set.add(new Num(7799));
System.out.println("인스턴스 수: " + set.size());
for(Num n : set)
System.out.print(n.toString() + '\t');
System.out.println();
/*
====출력
인스턴스 수: 2
7799 9955
*/
3.TreeSet 과 HashSet 의 차이는?
TreeSet은 오름차순으로 저장
HashSet은 오름차순으로 저장하지 않음.
추가로 Hash는 분류(=집합=군집)라고도 한다.
cf) 해쉬태그 # : 그 단어로 집합을 만들어서 search
4.아래를 프로그래밍 하시오.
하나의 학생 정보를 나타내는 Student 클래스에는
이름, 학과, 학번, 학점 평균을 저장하는 필드가 있다.
(1) 학생마다 Student 객체를 생성하고
4명의 학생 정보를 ArrayList<Student> 컬렉션에 저장한 후에,
ArrayList<Student>의 모든 학생(4명) 정보를 출력하고
학생 이름을 입력받아 해당 학생의 학점 평균을 출력하는 프로그램을 작성하라.
학생 이름, 학과, 학번, 학점평균 입력하세요.
>> 황기태, 모바일, 1, 4.1
>> 이재문, 안드로이드, 2, 3.9
>> 김남윤, 웹공학, 3, 3.5
>> 최찬미, 빅데이터, 4, 4.25
----------------------------------
이름: 황기태
학과: 모바일
학번: 1
학점평균: 4.1
----------------------------------
이름: 이재문
학과: 안드로이드
학번: 2
학점평균: 3.9
----------------------------------
이름: 김남윤
학과: 웹공학
학번: 3
학점평균: 3.5
----------------------------------
이름: 최찬미
학과: 빅데이터
학번: 4
학점평균: 4.25
----------------------------------
학생 이름 >> 최찬미
최찬미, 빅데이터, 4, 4.25
학생 이름 >> 이재문
이재문, 안드로이드, 2, 3.9
학생 이름 >> 그만
5. 개별 진척도 오늘 못한거 정리 해 주세요.
'면접준비 > KOSMO 허쌤 숙제' 카테고리의 다른 글
학습정리-11-17 (0) | 2021.11.18 |
---|---|
학습정리-11-10 (0) | 2021.11.10 |
학습정리-11-08 (0) | 2021.11.08 |
학습정리-11-05 (0) | 2021.11.06 |
학습정리-11-04 (0) | 2021.11.04 |
댓글