본문 바로가기

패스트캠퍼스 환급 챌린지

[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {23} 회차 미션

 

1. Set 인터페이스

[ 1. Java Iterator 개념 및 사용방법 ]

 

1. 정의

   - Java에서 제공하는 컬렉션(Collection)객체는 보관하고 있는 자료들을 순차적으로 접근하면서 처리할 때 사용하는 Iterator 형식을 제공하고 있다.

   - Iterator는 반복자라고 부르며 컬렉션 종류에 관계없이 같은 방법으로 프로그래밍 할 수 있게 해 준다.

 

2. 사용방법

   - Iterator 개체는 컬렉션 개체의 iterator() 메서드를 호출하여 얻어올 수 있다.

   - hasNext() 메서드로 이동이 가능한지 확인한 후에 next() 메서드로 해당 위치의 보관한 개체를 참조하여 원하는 작업을 수행한다.

 

3. 장.단점

   - 이와 같은 Iterator 개체를 사용하면 size 메서드를 얻어와서 반복 처리하는 것보다 속도에서 불리하다.

   - 이는 Iterator 개체를 사용하는 부분이 있기 때문에 불가피한 사항이다.

     하지만 컬렉션 종류에 관계없이 일관성있게 프로그래밍할 수 있다는 장점을 갖고 있다.

   - 소스 코드에 어떠한 컬렉션을 사용할 지 정해지지 않았지만 컬렉션 내에 보관한 모든 내용을 출력하는 등의 작업을 먼저 하길 원한다면 Iterator를 사용하는 것은 좋은 선택이다.



출처: https://farmerkyh.tistory.com/844

 

1. Java Iterator 개념 및 사용방법

[ 1. Java Iterator 개념 및 사용방법 ] 1. 정의   - Java에서 제공하는 컬렉션(Collection)객체는 보관하고 있는 자료들을 순차적으로 접근하면서 처리할 때 사용하는 Iterator 형식을 제공하고 있다.   - Iter

farmerkyh.tistory.com

2. TreeSet 클래스

TreeSet이란?

JDK 1.2부터 제공되고 있는 TreeSet은 HashSet과 마찬가지로 Set 인터페이스를 구현한 클래스로써 객체를 중복해서 저장할 수 없고 저장 순서가 유지되지 않는다는 Set의 성질을 그대로 가지고 있습니다. 하지만 HashSet과는 달리 TreeSet은 이진 탐색 트리(BinarySearchTree) 구조로 이루어져 있습니다. 이진 탐색 트리는 추가와 삭제에는 시간이 조금 더 걸리지만 정렬, 검색에 높은 성능을 보이는 자료구조입니다. 그렇기에 HashSet보다 데이터의 추가와 삭제는 시간이 더 걸리지만 검색과 정렬에는 유리합니다. TreeSet은 데이터를 저장할 시 이진탐색트리(BinarySearchTree)의 형태로 데이터를 저장하기에 기본적으로 nature ordering를 지원하며 생성자의 매개변수로 Comparator객체를 입력하여 정렬 방법을 임의로 지정해 줄 수도 있습니다. 

 

레드-블랙 트리(Red-Black Tree)

TreeSet은 이진탐색트리 중에서도 성능을 향상시킨 레드-블랙 트리(Red-Black Tree)로 구현되어 있습니다. 일반적인 이진 탐색 트리는 트리의 높이만큼 시간이 걸립니다. 데이터의 값이 트리에 잘 분산되어 있다면 효율성에 큰 문제가 없으나 데이터가 들어올 때 값이 편향되게 들어올 경우 한쪽으로 크게 치우쳐진 트리가 되어 굉장히 비효율적인 퍼포먼스를 냅니다. 이 문제를 보완하기 위해 레드 블랙 트리가 등장하였습니다. 레드 블랙 트리는  부모노드보다 작은 값을 가지는 노드는 왼쪽 자식으로, 큰 값을 가지는 노드는 오른쪽 자식으로 배치하여 데이터의 추가나 삭제 시 트리가 한쪽으로 치우쳐지지 않도록 균형을 맞추어줍니다.

출처:coding-factory.tistory.com/555

 

[Java] 자바 TreeSet 사용법 & 예제 총정리

TreeSet이란? JDK 1.2부터 제공되고 있는 TreeSet은 HashSet과 마찬가지로 Set 인터페이스를 구현한 클래스로써 객체를 중복해서 저장할 수 없고 저장 순서가 유지되지 않는다는 Set의 성질을 그대로 가

coding-factory.tistory.com

 

 

 

 

 

올인원 패키지 : JAVA 웹 개발 마스터👉