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 | 31 |
Tags
- aop
- HTML
- 코딩공부
- github
- 메서드
- 항해99
- 코딩테스트 준비
- 코딩
- CS
- 배열
- 면접(java
- Spring
- ArrayList
- 프로그래머스
- 코딩문제
- 이진 탐색(binary search)
- cs 공부)준비
- Java
- 정렬 알고리즘(sort algorithm)
- 회고
- 자바
- css
- GIT
- Grafana
- 자료구조
- wil
- Til
- 99클럽
- 개발자 취업
- Entity
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240406 Set 본문
Set 이란?
- java에서 집합은 중복 요소를 허용하지 않는 Collection이다. set 인터페이스는 HashSet, TreeSet, LinkedHashSet을 포함한 자바의 여러 클래스에 의해 구현된다.
Set 특징
- 중복 요소를 허용하지 않는다.
- 순서가 없다.
- Set 은 해시 테이블 또는 트리 구조를 사용하여 요소를 저장하기 때문에 빠른 엑세스 시간을 제공한다.
- 인덱싱을 제공하지 않는다. 즉, 배열처럼 set[1], set[2] 가 존재하지 않는다.
- Set 은 객체만 저장하고 primitive type은 저장하지 않는다. wrapper 클래스를 사용해야 한다. 즉, byte, short, int, long,double, boolean은 set에서 사용할 수 없다.
Set 구현 클래스
HashSet : Set을 구현하는 대표 클래스이다. 데이터를 중복할 수 없고 순서를 보장하지 않는다.
TreeSet : HashSet 특성 + 오름차순으로 데이터를 정렬한다.
LinkedHashSet : 데이터를 중복해서 저장할 수 없고, 다른 Set과 다르게 입력한 순서대로 데이터를 저장한다.
Set 메서드
- add(Object o) : 주어진 객체를 추가하고 성공하면 true, 중복 객체면 false를 반환한다. (boolean 타입 반환)
- contains(Object o) : 주어진 객체가 Set에 존재하는지 확인한다. (boolean 타입 반환)
- inEmpty() : Set이 비어있는지 확인한다. (boolean 타입 반환)
- iterator() : 저장된 객체를 하나씩 읽어오는 반복자를 반환한다. Iterator 타입을 반환한다.
- size() : 저장되어 있는 전체 객체의 수를 반환한다. int 타입을 반환한다.
- clear() : Set에 저장되어 있는 모든 객체를 삭제한다.
- remove(Object o) : 주어진 객체를 삭제한다. (boolean 타입 반환)
HashSet
- Set 인터페이스를 구현한 가장 대표적인 컬렉션 클래스이다. Set 인터페이스의 특성을 그대로 물려받으므로 중복된 값을 허용하지 않으며, 저장 순서를 유지하지 않는다.
/*HashSet 생성*/
HashSet<String> hashSet = new HashSet<>();
/*HashSet 에 객체 추가*/
hashSet.add("java");
hashSet.add("python");
hashSet.add("c++");
hashSet.add("ruby");
hashSet.add("java"); /*위에 코드 반복*/
hashSet.remove("python"); /*데이터 삭제*/
/*반복자를 생성해서 할당*/
Iterator a = hashSet.iterator();
while (a.hasNext()) {
System.out.println(a.next());
}
// c++
// java
// ruby
// java를 두번 추가했지만 한번만 저장됨
참고 자료
- https://pongic.tistory.com/4
- https://godsu94.tistory.com/173
- https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=heartflow89&logNo=220994601249
'기술 > java' 카테고리의 다른 글
[TIL]240410 JAVA Collection (0) | 2024.04.10 |
---|---|
[TIL]240408 Scanner 클래스 (1) | 2024.04.08 |
[TIL]240403 Map (0) | 2024.04.03 |
[TIL]240325 ArrayList (0) | 2024.03.25 |
[TIL]240323 List (1) | 2024.03.23 |