"hash code는 분류다"
hash는 주소(가짜주소)
hashCode 함수
Set<Integer> lotto = new HashSet<>(); while(lotto.size() != 6) { int num = (int)(Math.random()*45)+1; lotto.add(num); } System.out.println(lotto);
- set
<E>
- 집합 구현 (순서X, 중복X)
- 중복은 먼저 나온걸 없애고 나중에 나온게 들어간다
1 에서 이어짐
예시 : 주민등록번호 = 9는 9로 나눠서 나머지 0인걸로
0,1,2 나눠서 분류, 속도를 올림
(전부 일일히 확인하는것보다 최소 1/3 빠름)
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
/
class Num {
int num;
Num(int num) {
this.num = num;
}
@Override
public String toString() {
return String.valueOf(num);
}
@Override
public int hashCode() {
return num % 2;
}
@Override
public boolean equals(Object obj) {
if(this.num == ((Num)obj).num)
return true;
else
return false;
}}public class HashNum {
public static void main(String[] args) {
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();
}}
HashSet hSet = new HashSet();
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.onut.println("저장된 데이터 수: " + hSet.size());
System.out.println(hSet);
/
저장된 데이터 수: 2
[LEE(10세), PARK(35세)]
/
1. hashcode 호출, 분류(집합만듦) 2. equals 호출(add 안에<데이터를 집어넣을때>)
- Queue
<e>
iterator : 리모컨
for문에서 증감이 없으면 앞으로
리스트 : 순서있고 중복 가능
컬렉션 프레임워크는 다 ポリモーフィズム으로 이어져있다
Treeset