• 회원가입
  • 로그인
  • 구글아이디로 로그인

[class] Java - HashSet (해시셋) - 유일값만 인정하는 유사 배열. ※ Python의 Set과 유사.

3,349  
목차
  1. HashSet 정의
  2. 요소 추가 - add() 메서드
  3. 요소 존재 여부 체크 - contains(value) 메서드
  4. 요소 제거 - remove(value) / clear() 메서드
  5. HashSet 크기 (= 요소 개수) - size() 메서드
  6. HashSet 반복 - for_each 반복문
  7. String 이외의 다른 자료형 지정

 

HashSet 정의

 

고유 요소들이 대괄호[] 안에 콤마(,)로 나열 저장되는 유사 배열.

※ 예제: [value1, value2, .... ]

※ value는 객체 (object)에 해당.

※ value는 고유값 가져 함. 

※ 동일 value 값이 여럿일 경우, 오직 한 번만 출력.

※ key나 index가 아닌 value 자체로 value에 접근.

 

PS. 

Python의 Set과 유사하나, HashSet은 대괄호[] 사용.

 


[구문] 

 

(예) String 자료형 value 형태의 해시셋

 

// HashSet 클래스 가져오기.

import java.util.HashSet;

 

// HashSet 객체 (예: codes) 생성.

HashSet<String> codes = new HashSet<String>();

 

 

요소 추가 - add() 메서드

 

java.util.HashSet 클래스의 add() 메서드 이용.

※ 동일 요소를 2번 이상 추가해도 1번만 출력함.

※ 넣은 순서대로 출력 장담 X. (아래 결과값 참고.)

 


[예제] Hz.java

 

import java.util.HashSet;


public class Hz {

  public static void main(String[] args) {

    HashSet<String> codes = new HashSet<String>();

    codes.add("HTML");

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.add("CSS");

    System.out.println(codes);

  }

}

 

결과값: [CSS, JS, PHP, HTML]

 

요소 존재 여부 체크 - contains(value) 메서드

 

java.util.HashSet 클래스의 contains(value) 메서드 이용.

 


[예제] Hz.java

 

import java.util.HashSet;


public class Hz {

  public static void main(String[] args) {

    HashSet<String> codes = new HashSet<String>();

    codes.add("HTML");

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.add("CSS");

    System.out.println(codes.contains("PHP"));

  }

}

 

결과값: true

 

요소 제거 - remove(value) / clear() 메서드

[특정 요소 제거]

 

java.util.HashSet 클래스의 remove(value) 메서드 이용.


(예제) Hz.java 

 

import java.util.HashSet;


public class Hz {

  public static void main(String[] args) {

    HashSet<String> codes = new HashSet<String>();

    codes.add("HTML");

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.add("CSS");

    codes.remove("HTML");

    System.out.println(codes);

  }

}

 

결과값: [CSS, JS, PHP]


[모든 요소 제거]

 

java.util.HashSet 클래스의 clear() 메서드 이용.


(예제) Hz.java

 

import java.util.HashSet;


public class Hz {

  public static void main(String[] args) {

    HashSet<String> codes = new HashSet<String>();

    codes.add("HTML");

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.add("CSS");

    codes.clear();

    System.out.println(codes);

  }

}

 

결과값: []

 

HashSet 크기 (= 요소 개수) - size() 메서드

 

java.util.HashSet 클래스의 size() 메서드 이용.

※ 중복값은 1개로 침.

 


[예제] Hz.java

 

import java.util.HashSet;


public class Hz {

  public static void main(String[] args) {

    HashSet<String> codes = new HashSet<String>();

    codes.add("HTML");

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.add("CSS");

    System.out.println(codes.size());

  }

}

 

결과값: 4

 

HashSet 반복 - for_each 반복문

 

for_each 반복문 이용해 반복.

※ 중복값은 한 번만 출력.

 


[예제] Hz.java

 

import java.util.HashSet;


public class Hz {

  public static void main(String[] args) {

    HashSet<String> codes = new HashSet<String>();

    codes.add("HTML");

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.add("CSS");

    for (String i : codes) {

        System.out.println(i);

    }

  }

}

 

결과값:

CSS

JS

PHP

HTML

 

String 이외의 다른 자료형 지정

 

1.

HashSet의 value는 객체에 해당.

위 예제들 경우, String 자료형 사용.

 

2.

String 이외의 다른 자료형 객체 만들려면,

랩퍼 클래스 (wrapper class) 이용해야 함.

(예) 

int 자료형 객체 생성: Integer 클래스.

boolean 자료형 객체 생성 : Boolean 클래스.

char 자료형 객체 생성 : Character 클래스.

double 자료형 객체 생성 : Double 클래스.

 


[예제] Hz.java

※ int 자료형 value 갖는 HashSet 생성.

 

import java.util.HashSet;


public class Hz {

  public static void main(String[] args) {

    HashSet<Integer> nums = new HashSet<Integer>();


    nums.add(3);

    nums.add(5);

    nums.add(2);


    for(int i = 1; i <= 5; i++) {

      if(nums.contains(i)) {

        System.out.println(i + " : set에 포함 O");

      } else {

        System.out.println(i + " : set에 포함 X");

      }

    }

  }

}

 

결과값:

1 : set에 포함 X

2 : set에 포함 O

3 : set에 포함 O

4 : set에 포함 X

5 : set에 포함 O



분류 제목
Keyword Java - instanceof 키워드 - 객체가 클래스(또는, 인터페이스)의 인스턴스인지 체크. (= 인스…
Keyword Java - int 키워드 - int 정수 자료형 변수 선언.
Keyword Java - interface 키워드 - 인터페이스 선언
Keyword Java - long 키워드 - long 자료형 정수 담는 변수 선언.
Keyword Java - module 키워드 △ - 모듈 선언.
Keyword Java - native 키워드 △ - 메서드가 동일 Java 소스 파일(다른 언어)에서 구현되지 않도록 지…
Keyword Java - new 키워드 - 새로운 객체 생성 (= new키워드 = 뉴키워드)
Keyword Java - package 키워드 - 패키지 선언.
Keyword Java - private 키워드 - 선언된 클래스 안에서만 접근 가능 설정.
Keyword Java - protected 키워드 - 같은 패키지 및 서브 클래스에서만 접근 가능 설정.
Keyword Java - public 키워드 - 다른 클래스의 접근을 허용. (= 퍼블릭)
Keyword Java - requires 키워드 △ - 모듈 내부에 필요한 라이브러리 지정. (Java 9 이상)
Keyword Java - return 키워드 - 메서드 실행 후, 값을 반환.
Keyword Java - short 키워드 - short 정수 자료형 선언.
Keyword Java - static 키워드 - 객체 생성 없이 바로 접근 가능한 (메서드/속성) 선언.
Keyword Java - strictfp 키워드 △ - 부동 소수점 계산 정밀도 및 반올림 제한.
Keyword Java - super 키워드 - 슈퍼클래스 (= 부모클래스) 객체 의미.
Keyword Java - switch 키워드 - switch 조건문 선언.
Keyword Java - synchronized 키워드 △ - 한 번에 하나의 스레드에서만 메소드에 접근 가능 지정하는 …
Keyword Java - this 키워드 - (메서드・생성자)에서 현재 객체 지칭. (= 디스)
5/10
목록
찾아주셔서 감사합니다. Since 2012