HashSet은 Set의 구현 인터페이스의 구현클래스 이기 때문에 Set의 성질을 상속 받는다.
Set은 List와 다르게 순서가 보장되지 않는 자료구조이다.
add() 메소드는 인자를 저장하고, 입력되는 값이 set에 존재하지 않는다면 True를 반환하고, 이미 존재한다면 false를 반환한다.
HashSet<Integer> set1 = new HashSet<Integer>(); set1.add(1); set1.add(2); set1.add(3); System.out.println("set1" + set1); //set1[1, 2, 3]
remove() 는 매개변수의 값이 HashSet 내부에 존재한다면 그 값을 삭제하고 true를 반환하고 없을시 false를 반환한다.
HashSet<Integer> set1 = new HashSet<Integer>(); set1.add(1); set1.add(2); set1.add(3); System.out.println("set1" + set1); //set1[1, 2, 3] set1.remove(2); System.out.println("set1" + set1); //set11[1, 3]
clear()는 HashSet의 모든값을 삭제한다.
HashSet<Integer> set1 = new HashSet<Integer>(); set1.add(1); set1.add(2); set1.add(3); System.out.println("set1" + set1); //set1[1, 2, 3] set1.clear(); System.out.println("set1" + set1); //set1[]
contains()는 HashSet 내부에 객체가 존재하는지 확인한다.
HashSet<Integer> set1 = new HashSet<Integer>(); set1.add(1); set1.add(2); set1.add(3); System.out.println("set1" + set1); //set1[1, 2, 3] System.out.println("set1" + set1.contains(1)); System.out.println("set1" + set1.contains(7)); //set1 true //set1 false
iterator() 는 객체를 한 번씩 반복해서 가져오는 반복자 Iterator를 제공한다, 이 객체로 Hashset내의 모든 값을 한번씩 순회한다.
HashSet<Integer> set1 = new HashSet<Integer>(); set1.add(1); set1.add(2); set1.add(3); System.out.println("set1" + set1); //set1[1, 2, 3] Iterator iter = set1.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); } //1 //2 //3
위에서 말했듯이 set은 null요소는 허용하지만, 중복값은 허용하지 않는다.
HashSet<Integer> set1 = new HashSet<Integer>(); set1.add(1); set1.add(2); set1.add(null); set1.add(3); set1.add(2); System.out.println("set1" + set1);
//set1 [null, 1, 2, 3]