목차
HashSet 정의
요소 추가 - add() 메서드
요소 존재 여부 체크 - contains(value) 메서드
요소 제거 - remove(value) / clear() 메서드
HashSet 크기 (= 요소 개수) - size() 메서드
HashSet 반복 - for_each 반복문
String 이외의 다른 자료형 지정
HashSet 정의
고유 요소들이 대괄호[] 안에 콤마(,)로 나열 저장되는 유사 배열.
※ 예제: [value1, value2, .... ]
※ value는 객체 (object)에 해당.
※ value는 고유값 가져 함.
※ 동일 value 값이 여럿일 경우, 오직 한 번만 출력.
※ key나 index가 아닌 value 자체로 value에 접근.
PS.
Python의 Set 과 유사하나, HashSet은 대괄호[] 사용.
[구문]
(예) String 자료형 value 형태의 해시셋
// HashSet 클래스 가져오기.
import java.util.HashSet;
// HashSet 객체 (예: codes ) 생성.
HashSet<String> codes = new HashSet<String>();
요소 추가 - add() 메서드
java.util.HashSet 클래스의 add() 메서드 이용.
※ 동일 요소를 2번 이상 추가해도 1번만 출력함.
※ 넣은 순서대로 출력 장담 X. (아래 결과값 참고.)
[예제] Hz.java
import java.util.HashSet;
public class Hz {
public static void main(String[] args) {
HashSet<String> codes = new HashSet<String>();
codes.add ("HTML");
codes.add ("CSS");
codes.add ("JS");
codes.add ("PHP");
codes.add ("CSS");
System.out.println(codes);
}
}
결과값: [CSS, JS, PHP, HTML]
요소 존재 여부 체크 - contains(value) 메서드
java.util.HashSet 클래스의 contains(value ) 메서드 이용.
[예제] Hz.java
import java.util.HashSet;
public class Hz {
public static void main(String[] args) {
HashSet<String> codes = new HashSet<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
codes.add("CSS");
System.out.println(codes.contains ("PHP"));
}
}
결과값: true
요소 제거 - remove(value) / clear() 메서드
[특정 요소 제거]
java.util.HashSet 클래스의 remove(value) 메서드 이용.
(예제) Hz.java
import java.util.HashSet;
public class Hz {
public static void main(String[] args) {
HashSet<String> codes = new HashSet<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
codes.add("CSS");
codes.remove ("HTML");
System.out.println(codes);
}
}
결과값: [CSS, JS, PHP]
[모든 요소 제거]
java.util.HashSet 클래스의 clear() 메서드 이용.
(예제) Hz.java
import java.util.HashSet;
public class Hz {
public static void main(String[] args) {
HashSet<String> codes = new HashSet<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
codes.add("CSS");
codes.clear ();
System.out.println(codes);
}
}
결과값: []
HashSet 크기 (= 요소 개수) - size() 메서드
java.util.HashSet 클래스의 size() 메서드 이용.
※ 중복값은 1개로 침.
[예제] Hz.java
import java.util.HashSet;
public class Hz {
public static void main(String[] args) {
HashSet<String> codes = new HashSet<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
codes.add("CSS");
System.out.println(codes.size ());
}
}
결과값: 4
HashSet 반복 - for_each 반복문
for_each 반복문 이용해 반복.
※ 중복값은 한 번만 출력.
[예제] Hz.java
import java.util.HashSet;
public class Hz {
public static void main(String[] args) {
HashSet<String> codes = new HashSet<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
codes.add("CSS");
for (String i : codes) {
System.out.println(i);
}
}
}
결과값:
CSS
JS
PHP
HTML
String 이외의 다른 자료형 지정
1.
HashSet의 value는 객체에 해당.
위 예제들 경우, String 자료형 사용.
2.
String 이외의 다른 자료형 객체 만들려면,
랩퍼 클래스 (wrapper class) 이용해야 함.
(예)
int 자료형 객체 생성: Integer 클래스.
boolean 자료형 객체 생성 : Boolean 클래스.
char 자료형 객체 생성 : Character 클래스.
double 자료형 객체 생성 : Double 클래스.
[예제] Hz.java
※ int 자료형 value 갖는 HashSet 생성.
import java.util.HashSet;
public class Hz {
public static void main(String[] args) {
HashSet<Integer> nums = new HashSet<Integer>();
nums.add(3);
nums.add(5);
nums.add(2);
for(int i = 1; i <= 5; i++) {
if(nums.contains(i)) {
System.out.println(i + " : set에 포함 O");
} else {
System.out.println(i + " : set에 포함 X");
}
}
}
}
결과값:
1 : set에 포함 X
2 : set에 포함 O
3 : set에 포함 O
4 : set에 포함 X
5 : set에 포함 O
주소 복사
랜덤 이동
최신댓글