자바 소스 코드 분석 Iterable 인터페이스
1.쓰기 1C 순환
for (int i = 0, len = strings.size(); i < len; i++) {
System.out.println(strings.get(i));
}
2.쓰기 2Cforeach 순환
for (String var : strings) {
System.out.println(var);
}
3.쓰기 3 CIterator
Iterator iterator = strings.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
위의 세 가지 옮 겨 다 니 는 방식 에 대해 서 는 모두 가 잘 알 고 있 을 것 이 라 고 믿 습 니 다.for 순환 은 아래 표 시 를 통 해 요 소 를 얻 는 것 으로 이해 할 수 있 습 니 다.이 특징 은 배열 과 비슷 합 니 다.foreach 는 주로 링크 와 유사 한 디 결합 에 대해 옮 겨 다 니 는 지원 을 제공 합 니 다.링크 는 표시 되 지 않 았 습 니 다.foreach 순환 을 사용 하면 성능 이 크게 떨 어 집 니 다.Iterator 는 바로 우리 가 오늘 이야기 할 주인공 이다.그것 은 사실상 foreach 이다.자바 가 집합 을 위해 이렇게 몇 가지 옮 겨 다 니 는 방식 을 제공 한 이상 일반 대상 이나 그 어떠한 대상 이 라면 어떻게 옮 겨 다 녀 야 합 니까?
4.Iterable
Iterable 은 교체 기 라 는 뜻 으로 집합 류 에 for-each 순환 을 지원 하 는 역할 을 합 니 다.for 순환 을 사용 하려 면 위 치 를 통 해 요 소 를 가 져 와 야 하기 때문에 이런 획득 방식 은 배열 만 지원 하고 다른 많은 데이터 구조,예 를 들 어 링크 등 은 조 회 를 통 해 데 이 터 를 얻 을 수 있 기 때문에 효율 을 크게 낮 출 수 있다.Iterable 은 서로 다른 집합 류 가 스스로 옮 겨 다 니 는 가장 좋 은 방법 을 제공 할 수 있다.
Iterable 문서 성명 을 살 펴 보 겠 습 니 다.그 중 한 마디 는 이렇게 말 했 습 니 다.
Implementing this interface allows an object to be the target of the "for-each loop" statement.
자바 대상 에 foreach 순환 을 제공 하 는 역할 을 합 니 다.그 주요 방법 은 Iterator 대상 을 되 돌려 주 는 것 입 니 다.
Iterator<T> iterator();
어떤 자바 대상 에 게 foreach 를 지원 하 게 하려 면 iterable 인 터 페 이 스 를 실현 한 다음Iterator iterator = strings.iterator()
방식 으로 집합 하여 그렇게 옮 겨 다 닐 수 있다 는 뜻 이다.5.Iterator
Iterator 는 foreach 가 옮 겨 다 니 는 주체 입 니 다.어떻게 실현 되 는 지 볼 까요?
//
boolean hasNext();
//
E next();
// 。 , ,
default void remove(){...}
// action
default void forEachRemaining(Consumer<? super E> action){...}
그 밖 에 Iterator 는 키 인터페이스 도 있 습 니 다.슈 웨 이 는 데 이 터 를 양 방향 으로 옮 겨 다 닐 때 준비 한 것 입 니 다.그 방법 을 추가 한 것 을 보 세 요.
//
boolean hasPrevious();
//
E previous();
//
int nextIndex();
//
int previousIndex();
//
void add(E e);
//
void set(E e);
총화자바 에 서 는 인 터 페 이 스 를 통 해 이 루어 지 는 특성 이 많 으 며,foreach 순환 도 그렇다.foreach 는 주로 for 순환 이 아래 표 시 된 문제 에 의존 하 는 문 제 를 해결 하고 더 많은 데이터 결 을 효율적으로 옮 겨 다 니 는 데 지원 을 제공 합 니 다.
자바 소스 코드 를 분석 하 는 Iterable 인터페이스 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 Iterable 인터페이스 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.