본문 바로가기

카테고리 없음

예제를 통해 List방식와 Set방식의 차이점을 이해해보자

import java.util.HashSet; //List 방식중 하나인 HashSet을 사용하려고 import한거야

import java.util.Iterator;  //반복하겠다는 의미를 가짐

 

public class SetDemo {

  

  public static void main(String[] args) {

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

//A라는 변수주머니를 만들거야 타입은 정수(Integer)이고

//HashSet은 List 방식중 하나로 타입을 지정해주지 않으면 Object로 지정되어 버리니까 Integer라고 굳이 써준거야

//위에처럼 <Integer>라고 적어주는걸 제너릭했다라고들 말한데..

 

  A.add(1);

  A.add(2);

  A.add(2);

  A.add(3);

//A라는 변수주머니에 1,2,2,3을 넣어 줄거야

//List 방식중 하나인 HashSet이니까 주머니에 담기는 변수의 개수는 문제가되지 않지..

 

  Interator hi = (Iterator) A.iterator();

//A라고 언급한 변수주머니를 hi라고 정하고 주머니에 들어있는 변수들을 하나하나 출력할거야

  while(hi.hasNext()) {

    System.out.println(hi.next());

  }

//출력결과는 1,2,3이 나온다?

//변수는 1,2,2,3 4개의 변수가 주머니에 들어있었는데?? 1,2,3 3개의 변수만 출력된거지?

//HashSet은 List방식이니까 변수가 중복되면 안돼!

//그래서 중복되는 2, 2 두개의 변수중 하나는 출력하지 못한거야

//당연히 HashSet 대신 Set방식중에 하나인 ArrayList로 수정해서 적용하면

//1,2,2,3 이렇게 4개의 변수가 출력된다~

 

★총평

전부 알면 좋겠지만

List - HashSet : 중복불가!

Set - ArrayList : 중복상관없음!

이렇게 연관된다는 것만이라도 알고 있자