GnuSmalltalkUsersGuide:BaseChapter 153
- SortedCollection
SortedCollection
네임스페이스 Smalltalk에 정의됨
슈퍼클래스: OrderedCollection
범주: 컬렉션-순차 가능
- 나는 일부 정렬 기준에 따라 보관 및 접근되는 객체의 컬렉션이다. 나는 힙 정렬과 빠른 정렬을 이용해 대상을 보관한다. 나의 인스턴스들은 자신들과 연관된 비교 블록을 갖는다; 해당 블록은 두 개의 인자를 취하며, 첫 번째 인자를 두 번째 인자보다 먼저 정렬해야 하는 경우 true를 리턴한다. 기본 블록은 [ :a :b | a <= b ] 지만 위의 기준을 준수하는 블록이라면 무엇이든 허용할 것이다-사실 #value:value: 에 응하는 객체라면 무엇이든.
SortedCollection 클래스: 해킹(hacking)
defaultSortBlock
수신자에 대한 기본 정렬 블록을 응답하라.
SortedCollection 클래스: 인스턴스 생성
new
기본 크기와 정렬 블록으로 된 새 컬렉션을 응답하라.
new: aSize
기본 정렬 블록과 주어진 크기로 된 새 컬렉션을 응답하라.
sortBlock: aSortBlock
기본 크기와 주어진 정렬 블록으로 된 새 컬렉션을 응답하라.
SortedCollection: 기본
last
수신자의 마지막 항목을 응답하라.
removeLast
수신자의 끝에서 객체를 제거하라. 수신자가 비어 있는 경우 실패한다.
sortBlock
수신자의 정렬 기준을 응답하라.
sortBlock: aSortBlock
정렬된 컬렉션에 대한 정렬 기준을 변경하고, 컬렉션의 요소를 재정렬하여 리턴하라.
SortedCollection: 복사하기
copyEmpty: newSize
수신자와 같은 정렬 블록으로 된 수신자의 빈 복사본을 응답하라.
SortedCollection: 비활성화됨
add: anObject afterIndex: i
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.
addAll: aCollection afterIndex: i
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.
addAllFirst: aCollection
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.
addAllLast: aCollection
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.
addFirst: anObject
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.
addLast: anObject
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.
at: index put: anObject
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.
SortedCollection: 열거하기
beConsistent
#do: 또는 다른 열거 메서드를 이용해 수신자를 walk through하도록 준비시켜라.
SortedCollection: 저장하기와 로딩하기
postLoad
nil인 경우 기본 sortBlock을 복구시켜라.
preStore
기본 sortBlock을 nil로 보관하라.
SortedCollection: 검색하기
includes: anObject
Private - 수신자가 anobject와 같은 항목을 포함하는지 응답하라.
indexOf: anObject startingAt: index ifAbsent: aBlock
anElement를 포함하면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 exceptionBlock을 호출하여 그 결과를 응답하라.
occurrencesOf: anObject
수신자 내에서 얼마나 많은 anObject의 발생을 발견할 수 있는지 응답하라.