본문 바로가기

Java/information

[자바/JAVA] Iterator와 ListIterator

Iterator와 ListIterator
-이터레이터는 컬렉션 프레임워크에서 순환자 역할
-Iterator는 한 방향으로만 순환이 가능

Iterator의 메소드
boolean hasNext() :이후에 원소가 더 있는지 판단함 원소가 더 있다면 true를 반환함
E next() : 다음 원소를 반환함
ListIterator메소드
boolean hasNext() : 이후에 원소가 더 있는지 판단함, 원소가 더 있다면 true를 반환함
boolean hasPrevious() : 이전에 원소가 있는지 판단함. 원소가 있다면 true를 반환함
E next() : 다음 원소를 반환함
E previous() : 이전 원소를 반환함

 

.iterator();//오름차순으로 데이터를 리턴하는 반복자를 활용하는 메소드

Set 인터페이스는 집합을 의미
-집합의 특징 그대로 원소의 순서가 없고 중복된 원소를 넣지 않음
-Set 인터페이스를 구현한 대표적인 클래스는 TreeSet과 HashSet

 

TreeSet
-이진 트리 구조 형태 : 자신보다 하위에 두 데이터를 두는 구조
-데이터를 저장하면서 자동으로 정렬의 형태를 취함
-대소비교가 가능한 객체만 저장할 수 있음
-사용자가 만든 Person 객체에 대소 개념을 넣으려면 Comparable인터페이스, Comparator인터페이스 둘 중 하나 사용
(조건)
1) 저장되는 데이터는 모두 다른 값들이어야 한다.
2) 왼쪽 자식 데이터는 부모보다 작은 값이어야 한다.
3) 오른쪽 자식 데이터는 부모보다 큰 값이어햐 한다.

treeMap의 headMap메소드의 두번재 매개변수의 값의 default값이 false이지만 tailMap메소드는 true가 default값이다

 Comparable 인터페이스를 구현할 때에는 compareTo(객체)메소드를 오버라이드해서 자기자신 객체와 매개변수로 들어오는 객체를 비교하여 -1, 0, 1로 리턴하고 Comparator 인터페이스를 구현할 때에는 compare(객체1, 객체2)메소드를 오버라이드해서 두개의 객체를 비교해서 -1, 0, 1로 리턴한다. (음수, 0, 양수)
Comparable 인터페이스는 객체를 매개변수로 하고 getter를 이용해서 객체의 필드값을 얻어와 비교할 수 있다!

보너스

LIFO 후입선출, FIFO 선입선출의 자료구조 중에서 stack클래스는 LIFO 자료구조를 제공하고 Queue인터페이스는 FIFO 자료구조를 제공한다.
스택을 응용한 대표적인 예는 JVM 스택 메모리로 스택 메모리에 저장된 변수는 나중에 저장된 것부터 제거된다. 큐를 응용한 대표적인 예는 쓰레드풀의 작업큐로 작업큐는 먼저 들어온 작업부터 처리한다.

'Java > information' 카테고리의 다른 글

[자바/JAVA] 람다식과 열거형  (0) 2023.06.13
[자바/JAVA] 컬렉션 프레임워크  (0) 2023.06.09
[자바/JAVA] 제네릭 컬렉션 프레임워크  (0) 2023.06.03
[자바/JAVA] generic  (0) 2023.06.01
[자바/JAVA] 보조 스트림  (0) 2023.05.30