일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 노선별 평균 역 사이 거리 조회하기
- OAuth 인증
- 핸드폰 가리기
- github
- 프로그래머스
- Iterator
- 맥북
- 깃허브
- 포맷 지정자
- 자바
- 코딩테스트
- 27866
- 가격이 제일 비싼 식품의 정보 출력하기
- SQL코딩테스트
- 프로그램서
- JDK
- Eclipse
- mysql
- sort정렬
- HashMap
- 백준
- 해시
- homebrew
- Android Studio
- Java
- 문자열 숫자 변환
- MAC OS
- 안드로이드 스튜디오
- M1
- 알고리즘
Archives
- Today
- Total
개발일지
Set / HashSet 본문
728x90
Set이란?
- 중복해서 저장할 수 없으며, 하나의 null값만 저장 가능
- 중복 자동 제거
- 비선형 구조로 '순서'와 '인덱스'가 존재하지 않는다.
→ 삭제하는 경우 Set내부에서 해당 값을 검색하여 기능을 수행해야 한다.
→ 처리 속도 느림
HashSet이란?
: Set의 성질을 가지고 있음
- 중복된 값을 허용하지 않음
- 순서가 보장되지 않음
- null을 값으로 허용함
HashSet 구현
1. HashSet 생성
// 타입 지정하여 생성
HashSet<String> food = new HashSet<String>();
// 타입 생략 → 빈 HashSet생성 시 사용
HashSet<String> food2 = new HashSet<>();
// 초기 용량(Capacity) 설정
HashSet<String> food3 = new HashSet<>(10);
// food의 모든 값을 가진 HashSet 생성
HashSet<String> food4 = new HashSet<>(food1);
//초기값 지정 가능
HashSet<String> food5 = new HashSet<>(Arrays.asList("apple", "banana", "grape"));
2. HashSet 값 추가
- add()를 이용해 값 추가 가능
- 입력된 값이 내부에 존재한다면 false 리턴
- 입력된 값이 내부에 존재하지 않는다면 추가 후, true 리턴
HashSet<String> food = new HashSet<>()
food.add("apple");
food.add("banana");
food.add("grape");
3. HashSet 크기 구하기
- size()를 이용해 크기 구하기 가능
HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3));
System.out.println(set.size());
//return: 3
4. HashSet 값 삭제
- remove(), clear 이용해 값 삭제 가능
- 입력된 값이 내부에 존재한다면 값을 삭제 후, true 리턴
- 입력된 값이 내부에 존재하지 않는다면 false 리턴
HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3));
set.remove(2);
// 2 제거 후, true 리턴
set.clear();
//모든 값 제거 후, true 리턴
5. HashSet 값 검색
- contains()를 사용해 존재 여부 확인 가능
- 값이 있으면 true 리턴
- 값이 없으면 false 리턴
HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3));
System.out.println(set.contains(1));
// true 리턴
6. HashSet 값 출력
- 'System.out.println' 사용시 '[]' 형태로 출력
- 값만 출력하고 싶다면, Interator를 사용해야 함
- hashNext(): 가져올 객체가 있으면 true, 없으면 false 리턴
- next(): Iterator에서 하나의 객체를 가져올 수 있는 메소드
HashSet<Integer> set = new HashSet<Integer>(Arrays.asList(1,2,3));
//1번
System.out.println(set);
// [1, 2, 3] 리턴
//2번
Iterator iter = set.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
//1
//2
//3 리턴
📚 Reference
728x90
'Algorithm' 카테고리의 다른 글
[JAVA] Iterator entrySet(), keySet(), values() (0) | 2024.04.25 |
---|---|
[JAVA] 전화번호 목록 (0) | 2024.04.25 |
[Java] sort정렬, HashMap / 완주하지 못한 선수 (0) | 2024.04.25 |
[Java] 중복제거 (HashSet) / 폰켓몬 (0) | 2024.04.24 |
시간 복잡도 (0) | 2023.11.17 |
Comments