집합 인터페이스
자바 집합 라 이브 러 리 는 인터페이스(interface)와 구현(implementation)을 분리 합 니 다.예 를 들 어 대기 열 인터페이스의 최소 형식
interface Queue
{
void add(E element);
E remove();
int size();
}
그러나 대기 열 이 실현 하 는 두 가지 방식:하 나 는 순환 배열 을 사용 하 는 것 이다.다른 하 나 는 체인 시 계 를 사용 하 는 것 이다.
2.자바 라 이브 러 리 의 집합 인터페이스 와 교체 기 인터페이스
집합 류 의 기본 인 터 페 이 스 는 Collection 인터페이스 로 두 가지 기본 적 인 방법 이 있다.
public inter Collection
{
boolean add(E element);
Interator iterator
}
add 방법 은 집합 에 요 소 를 추가 하 는 데 사 용 됩 니 다.요 소 를 추가 하면 집합 을 바 꾸 고 true 로 돌아 갑 니 다.그렇지 않 으 면 false 입 니 다.집중 은 중복 되 는 대상 이 있 는 것 을 허락 하지 않 는 다.iterator 방법 은 Iterator 인 터 페 이 스 를 실현 한 대상 을 되 돌려 주 는 데 사 용 됩 니 다.집합 요소 에 순서대로 접근 합 니 다.
1.교체 기
3 가지 방법 포함
public interface Iterator
{
E next(); //
boolean hasNext(); //
void remove(); //
}
집합 끝 에 next 방법 은 NoSuchElement Exception 을 던 지고 next 를 호출 하기 전에 hasNext 방법 을 사용 해 야 합 니 다.
Collection c=...;
Iterator iter=c.iterator();
while(iter.hasNext())
{
String element=iter.next();
//do something
}
자바 SE 5.0 부터 사용 가능
for each
순환for(String element :c)
{
// do something
}
Iterable 인 터 페 이 스 를 임의로 실현 한 대상 과 함께 작업 할 수 있 습 니 다.Iterable 인터페이스
pulic interface Iterable
{
Iterator iterator();
}
표준 클래스 의 모든 집합 은
for each
순환 요소 가 접근 하 는 순 서 는 집합 유형 에 달 려 있다.비고:Iterator 인터페이스의 next 와 hasNext 방법 은 Enumeration 인터페이스의 nextElement 와 hasMoreElements 방법의 역할 과 같 지만 이 방법 은 이름 이 너무 번 거 롭 고 짧 은 방법 이름 을 선 호한 다.자바 교체 기 는 두 요소 사이 에 있다 고 생각 합 니 다.next 를 호출 할 때 교체 기 는 다음 요 소 를 넘 어 방금 넘 은 요소 의 인용 을 되 돌려 줍 니 다.
2.원소 삭제
마지막 으로 next 방법 을 호출 할 때 돌아 오 는 요 소 를 삭제 합 니 다.어떤 요 소 를 삭제 하려 면 이 요 소 를 넘 어야 합 니 다.reove 를 호출 하기 전에 next 를 호출 하지 않 으 면 IllegalState Exception 이상 을 던 집 니 다.그래서 매번 삭제 하기 전에 next 방법 을 사용 해 야 합 니 다.
Iterator it = stack.iterator(); //
it.next();
it.remove();
it.next();
it.remove();
3.일반적인 실 용적 인 방법
Collection 과 Iterator 는 모두 일반적인 인터페이스 로 모든 집합 형식 을 조작 하 는 실 용적 인 방법 을 만 들 수 있 습 니 다.라 이브 러 리 디자이너:어떤 실 용적 인 방법 은 매우 유용 하 므 로 사용자 에 게 제공 해 야 합 니 다.그러나 Collection 인 터 페 이 스 를 실현 하 는 모든 유형 은 너무 많은 예행 방법 을 제공 해 야 합 니 다.너무 번 거 롭 습 니 다.자바 라 이브 러 리 는 AbstractCollection 을 제공 하고 기본 적 인 방법 size 와 iterator 를 추상 화하 여 예행 방법 을 제공 하여 실제 데이터 구조 실현 자 는 예행 방법 을 실현 할 필요 가 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
알고리즘 의 미소스 코드 발표 (9)내용 소개: 비밀 알고리즘 세 계 를 탐색 하고 데이터 구조의 길 을 모색 한다.전형 적 인 문 제 를 모 아 프로 그래 밍 기법 의 취 미 를 즐 깁 니 다.구직 핫 이 슈 를 지적 하여 개업 계 의 유명 기업 의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.