본문 바로가기
Language/Java

[Java]자바 해쉬셋(HashSet) 사용법, 정리와 예제

by 시믈리에 2020. 9. 13.

생성자와 메서드


해쉬 셋에서는

HashSet()

HashSet(Collection c)

HashSet(int initialCapacity) 

HashSet(int initialCapacity, float loadFactor)

위와 같은 생성자가 있다

initialCapacity에 초기 용량 loadFactor은 언제 길이를 더 늘릴지 정하는 겁니다

loadFactor에 0.5를 적으면 초기 용량의 50%가 차 있을 때 2배 길이를 늘리는 겁니다

 

 

특징

  • 순서가 없다 중복도 허용하지 않는다

순서는 list를 이용하면된다 쭉 읽어보시고 LinkedList로 바꾸는 방법이 있다

그걸참고합시다

List의 특징은 중복이가능하고 순서가 있다

추가

  • boolean add(Object o) //추가
  • boolean addAll(Collection) //합집합

삭제

  • boolean remove(Object o) //삭제
  • boolean removeAll(Collection c) //교집합
  • boolean retainAll(Collection) //차집합

포함 여부

  • boolean contains(Object o) // 포함 여부
  • boolean containsAll(Colleaction c) // 컬렉션의 있는 요소가 모두 포함 되어있는지

별도

  • boolean isEmpty() //비어있는지 여부
  • int size() //저장된 객체수 (초기에 설정한 것과 별개로 저장된 객체의 수)
  • Object[] toArray() //각 객체를 배열로 변환
  • Object[] toArray(Object[] a) /..
  • Iterator iterator() //Iterator로 변환 (아래 예제 참고)

 

 

HashSet iterator


	public static void main(String[] args) {
        Object[] objArr = {"10", "20", "66"};
        Set set = new HashSet();
        final int j =  objArr.length;
        for (int i = 0; i < j; i++) {
			set.add(objArr[i]);
		}
        
        Iterator i = set.iterator();
        
        while (i.hasNext()) {
			System.out.println(i.next());
			
		}
        
	}

위와 같이 이용할 수 있다

아직 iterator을 아는 가정하에 설명을 생략하겠습니다

 

 

HashSet과 LinkedList 로 Sort


	public static void main(String[] args) {
        Object[] objArr = {"10", "20", "66"};
        Set set = new HashSet();
        final int j =  objArr.length;
        for (int i = 0; i < j; i++) {
			set.add(objArr[i]);
		}
        
        List list = new LinkedList(set);
        Collections.sort(list); //정렬
        System.out.println(list);
	}

 

 

리스트에는 자신이 만든 객체가 들어갈수가 있다

하지만 그객체들은 비교를 할수없다 그 객체가 가지고있는 요소중에 비교를 해야된다

그문제를 해결하기위해 Comparator을 이용하는데 아래에 있는링크랠 참고해주세요

simlit.tistory.com/6 

 

[Java]Comparator 사용법과 예제

Comparator Comparator의 예로 과일을 예로 들어보겠다 public class Fruit { String name; int Sale; public Fruit(String name, int price) { this.name = name; this.Sale = Sale; } int getPrice() { return S..

simlit.tistory.com

 

마무리


HashSet을 알아봤습니다

 

 

 

댓글