JavaTM Platform
Standard Ed. 6

java.util
클래스 AbstractSet<E>

java.lang.Object 
  상위를 확장 java.util.AbstractCollection <E>
      상위를 확장 java.util.AbstractSet<E>
형태 파라미터:
E - 이 세트에 의해 유지되는 요소의 형태
모든 구현된 인터페이스:
Iterable <E>, Collection <E>, Set <E>
직계의 기존의 서브 클래스:
ConcurrentSkipListSet , CopyOnWriteArraySet , EnumSet , HashSet , TreeSet


public abstract class AbstractSet<E>
extends AbstractCollection <E>
implements Set <E>

이 클래스는,Set 인터페이스의 스켈리턴 구현을 제공해, 이 인터페이스를 구현하는데 필요한 작업량을 최소한으로 억제합니다.

이 클래스를 확장해 세트를 구현하는 프로세스는, AbstractCollection 를 확장해 Collection 를 구현하는 프로세스와 같습니다. 다만, 이 클래스의 서브 클래스에 있는 메소드 및 생성자 의 모든 것은,Set 인터페이스에 의해 부과되는 추가의 제한에 따를 필요가 있습니다. 예를 들어, add 메소드는, 1 개의 객체의 복수 인스턴스를 세트에 추가하는 처리를 허용 해야 하지는 않습니다.

이 클래스는,AbstractCollection 클래스에 의한 구현을 일절 오버라이드(override) 하지 않습니다. 단지,equalshashCode 의 구현을 추가할 뿐입니다.

이 클래스는,Java Collections Framework 의 멤버입니다.

도입된 버젼:
1.2
관련 항목:
Collection , AbstractCollection , Set

생성자 의 개요
protected AbstractSet ()
          유일한 생성자 입니다.
 
메소드의 개요
 boolean equals (Object  o)
          지정된 객체가 세트와 같은가 어떤가를 비교합니다.
 int hashCode ()
          세트의 해시 코드값를 돌려줍니다.
 boolean removeAll (Collection <? > c)
          이 세트로부터, 지정된 컬렉션에 포함되는 요소를 모두 삭제합니다 (임의의 오퍼레이션).
 
클래스 java.util. AbstractCollection 로부터 상속된 메소드
add , addAll , clear , contains , containsAll , isEmpty , iterator , remove , retainAll , size , toArray , toArray , toString
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 
인터페이스 java.util. Set 로부터 상속된 메소드
add , addAll , clear , contains , containsAll , isEmpty , iterator , remove , retainAll , size , toArray , toArray
 

생성자 의 상세

AbstractSet

protected AbstractSet()
유일한 생성자 입니다. 서브 클래스의 생성자 에 의한 호출용으로, 일반적으로은 암묵적으로 불려 갑니다.

메소드의 상세

equals

public boolean equals(Object  o)
지정된 객체가 세트와 같은가 어떤가를 비교합니다. 지정된 객체가 세트이며, 2 개세트의 사이즈가 동일하고, 지정된 세트의 모든 멤버가 이 세트에 포함되어 있는 경우에 true 를 돌려줍니다. 이것에 의해,equals 메소드는 Set 인터페이스가 다른 구현상에서 올바르게 동작하는 것이 보증됩니다.

이 구현은, 지정된 객체가 이 세트 자신일지 어떨지를 최초로 조사합니다. 이 세트인 경우, 구현은 true 를 돌려줍니다. 다음에, 지정된 객체에 대해, 이 세트와 같은 사이즈세트일지 어떨지를 조사합니다. 지정된 객체가 이 세트와 같은 사이즈세트가 아닌 경우는 false 를 돌려줍니다. 지정된 객체가 이 세트와 같은 사이즈세트인 경우는,containsAll((Collection) o) 의 결과를 돌려줍니다.

정의:
인터페이스 Collection <E > 내의 equals
정의:
인터페이스 Set <E > 내의 equals
오버라이드(override):
클래스 Object 내의 equals
파라미터:
o - 이 세트와 동일한지 어떤지가 비교되는 객체
반환값:
지정된 객체가 이 세트와 같은 경우는 true
관련 항목:
Object.hashCode() , Hashtable

hashCode

public int hashCode()
세트의 해시 코드값를 돌려줍니다. 세트의 해시 코드는, 세트내의 각 요소의 해시 코드의 합계입니다. 다만,null 요소의 해시 코드는 제로가 됩니다. 이것에 의해,Object.hashCode() 의 일반 규약으로 요구되는 대로, 임의의 2 개세트 s1s2 에 대해,s1.equals(s2) 의 경우 s1.hashCode() ==s2.hashCode() 가 됩니다.

이 구현은, 세트의 각 요소의 hashCode 메소드를 호출해, 세트에 대해서 반복 처리를 실시해, 결과를 가산해 갈 것입니다.

정의:
인터페이스 Collection <E > 내의 hashCode
정의:
인터페이스 Set <E > 내의 hashCode
오버라이드(override):
클래스 Object 내의 hashCode
반환값:
세트의 해시 코드값
관련 항목:
Object.equals(Object) , Set.equals(Object)

removeAll

public boolean removeAll(Collection <? > c)
이 세트로부터, 지정된 컬렉션에 포함되는 요소를 모두 삭제합니다 (임의의 오퍼레이션). 지정된 컬렉션도 세트인 경우, 이 오퍼레이션은, 값이 2 개세트의 「비대칭 집합 차분」이 되도록(듯이) 세트를 효율적으로 변경합니다.

이 구현은,size 메소드를 호출해, 이 세트 및 지정된 컬렉션의 어느 쪽이 작은가를 판별합니다. 이 세트의 요소가 적은 경우, 구현은 이 세트의 반복자가 돌려주는 순으로 각 요소가 지정된 컬렉션내에 포함될지 어떨지를 확인합니다. 포함되어 있었을 경우, 반복자의 remove 메소드에 의해 이 세트로부터 요소를 삭제합니다. 지정된 컬렉션이 요소가 적은 경우, 구현은 지정된 컬렉션의 반복자가 돌려주는 각 요소를, 이 세트의 remove 메소드를 이용해 삭제합니다.

iterator 메소드로 반환된 반복자가 remove 메소드를 구현하고 있지 않는 경우, 이 구현은 UnsupportedOperationException 를 throw 합니다.

정의:
인터페이스 Collection <E > 내의 removeAll
정의:
인터페이스 Set <E > 내의 removeAll
오버라이드(override):
클래스 AbstractCollection <E > 내의 removeAll
파라미터:
c - 이 세트로부터 삭제되는 요소를 포함한 컬렉션
반환값:
이 호출의 결과, 이 세트가 변경되었을 경우는 true
예외:
UnsupportedOperationException - 이 세트가 removeAll 오퍼레이션을 지원하고 있지 않는 경우
ClassCastException - 이 세트의 요소의 클래스가 지정된 컬렉션과 호환성이 없는 경우 (생략 가능)
NullPointerException - 이 세트내에 null 요소가 포함되어 지정된 컬렉션이 null 요소를 허가하지 않는 경우 (생략 가능). 또는 지정된 컬렉션이 null 의 경우
관련 항목:
AbstractCollection.remove(Object) , AbstractCollection.contains(Object)

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.