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

영가이·2019년 10월 13일
0

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());
		}
	}


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

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());
		}
	}


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

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());
		}
	}

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

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

0개의 댓글