Map의 특징을 이용해 중복을 제거해야하는 경우가 생겼다

 

자바에서는 HashSet이 중복을 제거해준다고 한다

다만, HashMap의 성질중 키 값은 고유값이기 때문에 벨류값만 중복을 제거한다!!

 

 

public static void main(String[] args) throws Exception {

    HashMap<String, HashSet<String>> setTest = new HashMap<>();
    setTest.put("muzi",new HashSet<String>());

setTest 라는 HashMap<String, HashSet<String>> 형식의 HashMap 변수를 만든다

그런다음 setTest에 키값이 "muzi"인 데이터를 넣어준다

다만, HashSet의 형태는 [1,2,3]과 같은 리스트형태인데 이전에 선언된 바가 없으므로 new HashSet<String>으로 선언해준다

 

그러면 {muzi = []} 와 같이 출력이 될것이다

 

public static void main(String[] args) throws Exception {

    HashMap<String, HashSet<String>> setTest = new HashMap<>();
    setTest.put("muzi",new HashSet<String>());
    setTest.get("muzi").add("prodo");
    setTest.get("muzi").add("pr1");
    setTest.get("muzi").add("prodo");

    setTest.put("prodo",new HashSet<>());
    setTest.get("prodo").add("muzi");
    System.out.println(setTest);

setTest.get("키값").add(HashSet값) 을 하면 

{muzi = [prodo , pr1]} 와 같이 값이 넣어지며  HastSet은 중복을 허용하지 않기때문에

prodo를 두번 넣어도 prodo가 한번 출력된다!!!

 

 

 

 

 

+ Recent posts