Java HashSet - 집합 삽입, 삭제, 탐색





결과

결과





코드

package pk;

import java.util.HashSet;
import java.util.Iterator;

public class Test {

	public static void main(String[] args) {
		HashSet<String> ss = new HashSet<String>();
		
		ss.add("가");
		ss.add("나");
		ss.add("다");
		ss.add("라");
		ss.add("가");
		
		for(String s : ss) {
			System.out.print(s + " ");
			if(s.equals("라")) ss.remove(s);
		}
		
		System.out.println();
		Iterator<String> it = ss.iterator();
		while(it.hasNext()) {
			String s = it.next();
			System.out.print(s + " ");
			if(s.equals("다")) it.remove();
		}
		
		System.out.println();
		for(String s : ss) {
			System.out.print(s + " ");
		}
		System.out.println();
		System.out.println("길이 : " + ss.size());
		System.out.println("'가' 포함 여부 : " + ss.contains("가"));
		
	}

}




HashSet : 저장 순서가 유지되지 않으며 동일한 값을 1개만 저장할 수 있다.

중복이 없고, 순서가 없으므로 집합으로 볼 수 있다.

ex) 결과 1라인을 보면 중복이 허용안되며 순서도 무작위인걸 확인 가능하다.





boolean add(E e) : 원소 추가

- 리턴형이 boolean형으로 저장이 완료되면 true를, 중복된 원소라 저장이 실패한다면 false를 리턴한다.




boolean remove(Object o) : 원소 제거

- 성공적으로 제거하면 true를 실패하면 false를 리턴한다.




isEmpty() : 비었는지 검사




size() : 개수를 구함




boolean contains(Object o) : 포함 여부 확인

- 인수로 준 객체가 존재하는지 검사한다.




iterator() : iterator 객체를 얻음




탐색

1. for each문을 사용


2. Iterator를 사용

ㄴ boolean hasNext() : 가져올 객체가 있는지 없는지 검사한다.

ㄴ E next() : 한칸 다음으로 이동 후 그 객체 값을 리턴한다.


ex) 0 "가" "나 "다" "라"

이러한 set이 있다면 처음 next()를 실행하였을 경우 0에서 "가" 로 이동한 후 "가"를 리턴하게 된다.






+) 추가


- HashSet은 객체를 비교할 시 hashCode()와 equals() 메소드들을 재정의하여 조건을 지정해 주어야 한다.



링크

[JAVA/심화] - Java HashSet 합집합, 차집합, 교집합, 부분집합






+ Recent posts