GnuSmalltalkUsersGuide:BaseChapter 085

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
HashedCollection

HashedCollection

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: Collection

범주: 컬렉션-비정렬


나는 객체를 특유의 방식으로 보관할 수 있는 해싱된 컬렉션으로서, 컬렉션 내 그 객체들에 대해 빠른 응답을 제공한다.


HashedCollection 클래스: 인스턴스 생성

new

기본크기로 된 수신자의 새 인스턴스를 응답하라.

new: anInteger

주어진 용량(capacity)으로 된 수신자의 새 인스턴스를 응답하라.

withAll: aCollection

요소들이 aCollection에 위치한 컬렉션을 응답하라.


HashedCollection: 접근하기

add: newObject

newObject를 집합으로 추가하되 집합이 그것의 발생을 이미 포함하지 않을 경우에만 추가해야 한다. 중복이 발견될 경우 실패하지 말라. anObject를 응답하라.

at: index

이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.

at: index put: value

이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.


HashedCollection: builtins

primAt: anIndex

Private - 수신자에 대한 해시 테이블의 anIndex번째 항목을 응답하라. basicAt: 대신 이를 이용하면 표현을 더 쉽게 변경할 수 있다.

primAt: anIndex put: value

Private - 수신자에 대한 해시 테이블의 anIndex번째 항목에 값을 보관하라. basicAt:put: 대신 이를 이용하면 표현을 더 쉽게 변경할 수 있다.

primSize

Private - 수신자에 대한 해시 테이블의 크기를 응답하라. basicSize 대신 이를 이용하면 표현을 더 쉽게 변경할 수 있다.


HashedCollection: 복사하기

deepCopy

수신자의 깊은 복사를 리턴한다 (인스턴스 변수는 수신자의 인스턴스 변수에 대한 복사본이다)

shallowCopy

수신자의 얕은 복사를 리턴한다 (인스턴스 변수가 복사되지 않는다)


HashedCollection: 컬렉션의 요소 열거하기

do: aBlock

집합의 nil이 아닌 멤버를 열거하라.


HashedCollection: 재해싱하기

rehash

수신자를 재해싱하라.


HashedCollection: 제거하기

remove: oldObject ifAbsent: anExceptionBlock

집합에서 oldObject를 제거하라. 발견될 경우 oldObject를 응답하고, 그 외의 경우 anExceptionBlock을 평가하여 그 값을 응답하라.


HashedCollection: 저장하기와 로딩하기

postLoad

객체 로딩 이후 호출된다; 정체성 객체(identity object)는 그들의 해시를 변형할 가능성이 매우 높으므로 컬렉션을 재해싱하라.

postStore

객체를 덤프한 이후에 호출된다. 아무 일도 하지 않는다 - 기본적으로 이는 #postLoad를 기본값으로 호출하기 때문이다.


HashedCollection: 보관하기

storeOn: aStream

수신자로 컴파일하는 일부 스몰토크 코드를 aStream 상에 보관하라.


HashedCollection: 컬렉션 검사하기

= aHashedCollection

두 집합이 같은 멤버십을 갖는 경우 true를, 그렇지 않은 경우 false를 리턴하라.

capacity

수신자가 증가하기 이전에 얼마나 많은 요소를 보유할 수 있는지 응답하라.

hash

집합의 멤버에 대한 해시 코드를 리턴하라. 순서는 중요하지 않으므로 가환연산자를 사용해 해시값을 계산한다.

includes: anObject

수신자가 anObject의 인스턴스를 포함하는지 응답하라.

isEmpty

수신자가 비었는지 응답하라.

occurrencesOf: anObject

anObject의 발생횟수를 리턴하라. 우리는 집합이므로 0 또는 1이 되겠다. Nil은 절대 집합 안에 직접적으로 존재하지 않으므로 특수 케이싱(special case)한다 (결과는 항상 1이다).

size

수신자의 크기를 응답하라.


Notes