Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- assuming That
- springmvc
- 컴퓨터과학
- MVC모듈
- Git
- assume True
- MVC
- Junit5
- springboot
- assume That
- Spring
- 스프링프레임워크
- container
- swaggerUrl
- gitbash
- springsecurity
- CS50
- DispatcherServlet
- springframeworkruntime
- GitHub
- Swagger
- 파일삭제
- securityconfig
- c언어
- 원격저장소
- 부스트코스
- .out
- 팀과제
- assume
- .idea
Archives
- Today
- Total
도담이 먹여 살려야하는 집사
HashSet 본문
HashSet은 자바의 collection 중의 SET의 대표적인 클래스임
>> SET은 기본적으로 집합으로 중복된 원소를 허용하지 않음.
>> 여기서 파생된 HashSet은 중복된 원소를 허용하지않고 순서도 고려되지 않음 (별도의 정렬 작없이 없기 때문에 작업이 빠르다고함)
간단하게 LIST / SET / MAP을 비교하면
LIST 순서가 있고 (인덱스 부여 후 인덱스로 검색 가능), 데이터의 중복도 허용됨.
SET은 순서가 없고(인덱스 사용X, 매개변수가 없음), 데이터의 중복은 허용하지 않음.
MAP은 KEY&VALUE값을 저장하고, KEY는 중복이 안되고 VALUE는 중복이 허용됨.
>> null값을 저장할 수 있음.
>> 내부적으로 HashMap을 사용하여 데이터를 저장함.
예를 들어 이벤트에서 전년도 당첨자는 당해년도 이벤트에 신청 할 수 없다는 조건을 걸기 위해서 HashMap을 쓸 수 있다. 주민등록번호를 value값으로 잡고 전년도 이벤트 신청자 중에서 1번의 검색으로 당첨자를 조회 할 수 있게됨. 만약 LIST를 사용할 경우 전년도 이벤트 신청자가 1000명일경우 1000번을 검색해야함 (컴퓨터는 List에 뭐가 있는지 모르기때문에 1번부터 뒤져서 찾아야함) 처리속도에서 확연한 차이를 느낄 수 있음.
처리속도 : O(1) >> Set O(n) >> List
Set<String> hashset01 = new HashSet<>();
Set<String> hashset02 = new HashSet<>();
hashset01.add("서모찌");
hashset01.add("임도담");
//중복된 요소의 저장
System.out.println(hashset01.add("고양이"));
System.out.println(hashset01.add("고양이"));
//for문과 get()메소드를 이용한 요소의 출력
for(String e : hashset01) {
System.out.println(e + " ");
}
System.out.println();
hashset02.add("메가커피");
hashset02.add("스타벅스");
hashset02.add("소년커피");
//iterator() 메소드를 이용한 요소의 출력
Iterator<String> iter02 = hashset02.iterator();
while (iter02.hasNext()) {
System.out.println(iter02.next() + " ");
}
System.out.println();
System.out.println("집합의 크기 :" +hashset02.size());
}
콘솔창 출력 결과
true
false
고양이
임도담
서모찌
메가커피
스타벅스
소년커피
집합의 크기 :