Set은 객체를 중복해서 저장할 수 없고(자동으로 중복 제거), 하나의 null값만 저장 할 수 있으며, 저장 순서가 유지되지 않는다. (저장 순서를 유지하기 위해서는 JDK 1.4부터 제공하는 LinkedHashSet 클래스 이용)
HashSet은 TreeSet과 다르게 자동 정렬이 되지 않는다
HashSet 선언 방법
HashSet<Integer> h1 = new HashSet<Integer>();//타입 지정
HashSet<Integer> h2 = new HashSet<>();//new에서 타입 생략가능
HashSet<Integer> h3 = new HashSet<Integer>(h1);//h1의 모든 값을 가진 HashSet생성
HashSet<Integer> h4 = new HashSet<Integer>(10);//초기 용량(capacity)설정
HashSet<Integer> h6 = new HashSet<Integer>(Arrays.asList(1,2,3));//초기값 지정
HashSet 기초 명령어 예제
→HashSet 값 추가
public class Main {
public static void main(String[] args) {
HashSet<Integer> h = new HashSet<Integer>();
h.add(1);
h.add(2);
h.add(3);
h.add(1);
System.out.println(set); //[1, 2, 3]
}
}
→HashSet 값 삭제
public class Main {
public static void main(String[] args) {
HashSet<Integer> h = new HashSet<Integer>(Arrays.asList(1,2,3));
h.remove(1); // value 1 삭제
h.clear(); // 전체 값 삭제
System.out.println(h); //[1, 2, 3]
}
}
→HashSet 크기 반환
public class Main {
public static void main(String[] args) {
HashSet<Integer> h = new HashSet<Integer>(Arrays.asList(1,2,3));
System.out.println(h.size()); //3
}
}
→HashSet 값 출력
public class Main {
public static void main(String[] args) {
HashSet<Integer> h = new HashSet<Integer>(Arrays.asList(1,2,3));
System.out.println(h); //[1, 2, 3]
Iterator iter = h.iterator(); //Iterator 사용
while(iter.hasNext()) { //다음 값이 있는지 확인
System.out.print(iter.next() + " "); // 1 2 3
}
}
}
HashSet은 인덱스로 값을 반환하는 get 메소드가 없다. 대신 iterator인터페이스를 구현한 객체의 iterator()메소드를 호출하여 값을 얻을 수 있다.iterator에서 하나의 객체를 가져올 때는 next()메소드를 이용한다. hashNext()메소드를 통해 가져올 객체가 있는지 없는지 확인 할 수 있다.(true,false)
→HashSet 값의 유무 확인
public class Main {
public static void main(String[] args) {
HashSet<Integer> h = new HashSet<Integer>(Arrays.asList(1,2,3));
System.out.println(h.contains(1)); //true
System.out.println(h.contains(4)); //false
}
}
'자바' 카테고리의 다른 글
[자바] CompareTo (0) | 2023.01.13 |
---|---|
[자바] 람다식 개념 및 표현법 (0) | 2023.01.12 |
Vector 기초 (자바) (0) | 2023.01.07 |
Stack 기초 (자바) (0) | 2023.01.06 |
LinkedList 기초 (자바) (0) | 2023.01.06 |