상세 컨텐츠

본문 제목

Java - Set (HashSet, TreeSet)

개발/Java

by 뉴에이스 2018. 9. 28. 16:25

본문

Set : 중복을 허용하지 않는다. 순서 관리가 되지 않는다.
Set은 추상인터페이스로 직접생성이 불가능

 

소스

 

public static void main(String[] args) {
	// 데이터의 정렬이 필요치 않을 경우
	//Set set = new HashSet<>();
	// 데이터 정렬이 필요할 경우
	Set set = new TreeSet<>();

	// add가 됬을경우 true
	System.out.println(set.add("one"));
	System.out.println(set.add("two"));
	System.out.println(set.add("three"));

	System.out.println("크기 : " + set.size());
	// 같은값을 허용하지 않기 때문에 false 반환
	System.out.println(set.add("two"));
	System.out.println("크기 : " + set.size());

	System.out.println(set.add("four"));
	System.out.println(set.add("five"));
	// set에도 재정의된 toString이 있다.
	// 저장된 데이터에 대한 정렬을 하지 않는다.
	System.out.println(set);

	// 순서의 개념이 없어 인덱스를 받지 않고 객체를 받아 처리
	// remove(Object) 형태밖에 제공되지 않는다.
	// 따라서 아래의 코드는 remove(new Integer(1))로 변환되어 같은 객체를 삭제 요청한다.
	//set.remove(1); // 인덱스 위치 개념이 아님
	set.remove("one");
	System.out.println(set);

	for(int i=0 ; i<set.size(); i++)="" {="" 인덱스="" 개념이="" 없기="" 때문에="" 이="" 방식으로는="" 출력="" 불가="" }="" system.out.println("-------------------");="" for(string="" data="" :="" set)="" system.out.println(data);="" iterator="" 방식="" 접근="" 가능="" iterator<string=""> ite = set.iterator();
	while(ite.hasNext()){
		System.out.println(ite.next());
	}
	System.out.println("-------------------");
}
</set.size();>

 

결과

 

true
true
true
크기 : 3
false
크기 : 3
true
true
[five, four, one, three, two]
[five, four, three, two]
-------------------
five
four
three
two
-------------------
five
four
three
two
-------------------

 

관련글 더보기

댓글 영역