HashSet

LEEEEEEE·2023년 9월 20일

Java

목록 보기
3/8

HashSet

  1. 중복된 원소를 허용하지 않는 데이터구조입니다. 즉, 동일한 원소를 여러 번 추가해도 내부에서는 하나의 원소로만 유지됩니다.
  2. Set인터페이스를 구현하고 있어서, 집합(set)의 개념을 따릅니다.
  3. 원소를 저장할 때 순서를 유지하지 않습니다. 따라서 원소들의 순서는 저장 순서와 무관하며, 인덱스로 원소에 접근할 수 없습니다. 만약 저장된 순서를 유지하고자 한다면 LinkedHashSet을 사용해야 합니다.
  4. 해시 테이블을 기반으로 구현되어 있어, 원소의 검색과 삽입이 빠릅니다.

HashSet의 메서드

  • add(E e): 지정된 원소를 HashSet에 추가합니다.
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
        fruits.add("Banana"); // 중복 원소는 허용되지 않음
  • remove(Object o): 지정된 원소를 HashSet에서 제거합니다.
	String removeElement = "Cherry";
        if (fruits.remove(removeElement)) {
            System.out.println("'" + removeElement + "' removed from the HashSet.");
        } else {
            System.out.println("'" + removeElement + "' not found in the HashSet.");
        }
  • contains(Object o): 지정된 원소가 HashSet에 포함되어 있는지 여부를 확인합니다.
	String searchElement = "Banana";
        if (fruits.contains(searchElement)) {
            System.out.println("'" + searchElement + "' exists in the HashSet.");
        } else {
            System.out.println("'" + searchElement + "' does not exist in the HashSet.");
        }
  • isEmpty(): HashSet이 비어 있는지 여부를 확인합니다. 비어 있으면 true를 반환하고, 원소가 하나 이상 포함되어 있으면 false를 반환합니다.
	boolean isEmpty = fruits.isEmpty();
        System.out.println("Is the HashSet empty? " + isEmpty);
  • size(): HashSet에 저장된 원소의 개수를 반환합니다.
	int size = fruits.size();
        System.out.println("Size of the HashSet: " + size);
  • clear(): HashSet의 모든 원소를 제거하여 비웁니다.
	fruits.clear();
        System.out.println("Cleared HashSet: " + fruits);
  • iterator(): HashSet의 원소를 반복하기 위한 반복자(Iterator)를 반환합니다. 반복자를 사용하여 HashSet의 모든 원소를 순회할 수 있습니다.

  • addAll(Collection<? extends E> c): 다른 컬렉션에서 원소를 가져와서 HashSet에 추가합니다.

	ArrayList<String> otherFruits = new ArrayList<>();
        otherFruits.add("Mango");
        otherFruits.add("Orange");
        fruits.addAll(otherFruits);
  • removeAll(Collection<?> c): 다른 컬렉션에 포함된 원소를 HashSet에서 제거합니다.
	fruits.removeAll(otherFruits);
        System.out.println("HashSet after removing elements from ArrayList: " + fruits);
  • retainAll(Collection<?> c): 다른 컬렉션에 포함된 원소만을 HashSet에 남기고 나머지 원소를 제거합니다.
	fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
        fruits.retainAll(otherFruits);
  • toArray(): HashSet의 원소를 배열로 변환합니다.
	String[] fruitsArray = fruits.toArray(new String[0]);

테스트 코드

profile
한단계씩 성장하고 싶은 개발자

0개의 댓글