본문 바로가기
java

Collection(Set)

by 신방동불주먹 2022. 10. 12.

 

<  Set >

 

- 특징 :

- 순서를 가지지 않음

- 중복을 허용하지 않음

 

 

1. HashSet : 일반적으로 많이 사용하는 Set 자료구조

2. LinkedHashSet : Set은 중복을 허용하지 않고 순서를 가지지 않지만 LinkedHashSet은 중복은 허용되지 않지만 들어온 대로 순서를 가진다.

3. TreeSet : 데이터를 정렬하여 저장

4. Queue : FIFO(First-In-First-Out) 구조

 


데이터의 중복을 허용하지 않는데 서로 다른 객체로 인식하여 중복 입력되는 것을 막기위해 hashcode, equals 오버라이딩을 필요로 한다. 

		//hash특징과 set특징이 합쳐짐 
		//Set : 데이터 들어가는 순서가 랜덤, 중복되는 값 입력 불가
		
/*		
		//HashSet set = new HashSet();
		//제네릭 적용
		HashSet<String> set = new HashSet<String>();
		
		//타입이 다르면 다른 데이터로 인식
		set.add("1");
		set.add("2");
		set.add("1");
		set.add("4");
		//set.add(new Integer(1)); //순서대로 들어간 것 아니다.
		
		System.out.println(set);
				
//		for(Object obj : set) {
//			String str = (String)obj;
//			System.out.println(str);
//		}
		
		Iterator<String> it = set.iterator();
		while(it.hasNext()) {
			//String str = (String)it.next();
			String str = it.next(); //제네릭 적용시 캐스팅 x
		}
		
		*/
		
	
		
		
		//TreeSet : 트리구조의 컬렉션이 가지는 특징 :
		//값이 정렬되어진다.
		//반드시 값으로 사용되는 해당 클래스 안에는 정렬 조건이 오버라이딩 되어있어야 한다.
		//implements Comparable (Integer,String)
		
	/*	
		TreeSet set = new TreeSet();
		set.add(new Integer(2)); //오토박싱이 되어서 생략한 것. wrapper 타입으로 써야함
		set.add(5);
		set.add(1);
		set.add(4);
		set.add(3);
	
		System.out.println(set);
		
		Iterator it = set.iterator(); //타입 동일하게 설정  컬렉션에 제네릭을 적용하는것 
		
		while(it.hasNext()) {
			Integer intg = (Integer)it.next();
			System.out.println(intg);
		}
		*/

'java' 카테고리의 다른 글

List to Array  (0) 2023.05.26
정규표현식  (0) 2023.02.26
Properties  (0) 2022.10.12
Collection(Map)  (0) 2022.10.12
Iterator (반복자 패턴)  (0) 2022.10.11