Set과 Map 완정정복하기!!-Set

영가이·2019년 10월 13일

Set

set은 linkedList와 달리 데이터의 중복을 허용하지않는다.
인덱스로 객체를 관리하지 않으므로 데이터를 검색할때는 iterator() 메서드로 iterator(반복자)를 생성하고 데이터를 가져와야한다.

Set의 종류

HashSet

대표적인 set 컬렉션 구현 클래스.
중복 데이터 저장 X
순서 보장 X

	public static void main(String[] args) {
		HashSet<String> set = new HashSet<>();
		
		set.add("안");
		set.add("녕");
		set.add("하");
		set.add("세");
		set.add("요");
		set.add("99");
		set.add("2");
		set.add("-1");
		//한번더 넣으면? 중복을 허용하지않으므로 들어가지않는다!
		set.add("안");
		set.add("녕");
		set.add("하");
		set.add("세");
		set.add("요");
		set.add("99");
		set.add("2");
		set.add("-1");
		
		
		Iterator<String> itr = set.iterator();
		while(itr.hasNext()) {
			System.out.println(itr.next());
		}
	}

image.png
->중복을 허용하지않고 순서도 뒤죽박죽이다.

TreeSet

Hashset과 같이 중복데이터 저장 X
순서 보장 X

단, 오름차순으로 데이터를 정렬한다.

public static void main(String[] args) {
		TreeSet<String> set = new TreeSet<>();
		
		set.add("안");
		set.add("녕");
		set.add("하");
		set.add("세");
		set.add("요");
       set.add("3");
		set.add("2");
		set.add("1");
		
		Iterator<String> itr = set.iterator();
		while(itr.hasNext()) {
			System.out.println(itr.next());
		}
	}

image.png
->숫자와 글자가 오름차순으로 저장됨.

LinkedHashSet

중복데이터 저장 X
단, 입력된 순서대로 데이터를 관리한다.

public static void main(String[] args) {
		LinkedHashSet<String> set = new LinkedHashSet<>();
		
		set.add("안");
		set.add("녕");
		set.add("하");
		set.add("세");
		set.add("요");
		set.add("3");
		set.add("2");
		set.add("1");
       
		Iterator<String> itr = set.iterator();
		while(itr.hasNext()) {
			System.out.println(itr.next());
		}
	}

image.png

->데이터가 들어온 순서대로 저장되었다.

profile
금융 IT서비스를 개발 및 운영하고있는 3년차 개발자입니다.

0개의 댓글