집합 인터페이스

집합 인터페이스
자바 집합 라 이브 러 리 는 인터페이스(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 를 추상 화하 여 예행 방법 을 제공 하여 실제 데이터 구조 실현 자 는 예행 방법 을 실현 할 필요 가 없습니다.

좋은 웹페이지 즐겨찾기