룽쓰의 개발도구

List와 Set의 차이점 한 눈에 보기 본문

개발 용어/Spring

List와 Set의 차이점 한 눈에 보기

디벨로퍼룽쓰 2021. 5. 2. 23:18

앞선 #18과 #19를 통해서 List와 Set의 특징에 대해서 알아봤다.

그럼 Spring을 접하기 전에 우린 Java에서 어떤 식으로 구현했고, 어떤 차이점이 있는지 확인할 수 있었을까?

 

 

package org.setandlist;

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class SetAndList {
	public static void main(String[] args) {
		List<String> list = Arrays.asList("홍길동","일지매","임꺽정","홍길동");
		
		for( String name : list) {
			System.out.printf(name+" ");
		}
		System.out.println();
		System.out.println("--------------------------");

		Set<String> setList = new HashSet<String>();
		
		setList.add("홍길동");
		setList.add("일지매");
		setList.add("임꺽정");
		setList.add("홍길동");
		
		for(String name : setList) {
			System.out.printf(name + " ");
		}
	}
}

List와 Set을 담고 있는 객체를 각 하나씩 만들었다. 

두 개의 결과 값은 각각 어떻게 나오게 될까?

 

먼저, List의 결과 값을 보자.

 

홍길동 일지매 임꺽정 홍길동

 

이렇게 홍길동이 중복해서 결과가 나왔다. 그럼 Set은 어떻게 나올까?

 

홍길동 일지매 임꺽정

 

중복으로 add를 했던 홍길동은 하나만 나왔기 때문에 값을 총 4번 집어넣었지만, 출력 값을 3개가 되는 것이다.

전에 설명했던 대로, List는 중복 값을 저장할 수 있으며 순서가 있지만, Set은 그렇지 않다.

특히, 지금은 값을 넣었던 순서대로 나왔을지 몰라도 set에 담은 값은 출력할 때마다 값의 순서는 달라질 수 있다는 것을 명심해야 한다. 

 

 

** 여기서 주의해야 할 점은 Set은 값의 순서가 없을 뿐이지 같은 값이 여러 번 나올 수 없다. **

우리가 10원, 50원, 100원, 500원 각 1개씩 든 동전 주머니에서 100원짜리 동전을 하나 꺼냈을 때 다음에 꺼내는 동전은 100원이 될 수 없는 것과 같다.

'개발 용어 > Spring' 카테고리의 다른 글

Component Scan 이란?  (0) 2021.05.02
Spring의 Map이란 무엇일까?  (0) 2021.05.02
Spring에서 Set이란?  (0) 2021.05.02
Spring에서 List란?  (0) 2021.04.30
Property와 Constructor는 무엇일까?  (0) 2021.04.29