GnuSmalltalkUsersGuide:BaseChapter 143

From 흡혈양파의 번역工房
Jump to navigation Jump to search
RunArray

RunArray

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: OrderedCollection

범주: 컬렉션-순차 가능


나의 인스턴스들은 OrderedCollections인데, 이는 자신이 보관하는 것들에게 RLE(런 길이 부호화) 압축을 적용한다. 나를 사용할 때는 주의를 기울여야 한다: 나는 공간을 엄청나게 절약해주지만 나의 인스턴스들은 선형 접근 시간을 제공하지 않는다. RunArray의 행위는 현재 OrderedCollection의 행위와 비슷하다 (RunArray로 요소를 추가할 수 있다); 어쩌면 ArrayedCollection처럼 행위해야 할지도 모른다.


RunArray 클래스: 인스턴스 생성

new

빈 RunArray를 응답하라.

new: aSize

aSize run을 위한 공간이 있는 RunArray를 응답하라.


RunArray: 접근하기

at: anIndex

색인 anIndex에 있는 요소를 응답하라.

at: anIndex put: anObject

anIndex 색인에 있는 요소를 anObject로 대체하고 anObject를 응답하라.


RunArray: 추가하기

add: anObject afterIndex: anIndex

색인 anIndex에 위치한 요소 다음에 anObject를 추가하라.

addAll: aCollection afterIndex: anIndex

색인 anIndex에 위치한 요소 다음에 aCollection의 모든 요소를 추가하라. aCollection이 정렬되지 않은 경우 그 요소들은 #do: 순서가 아닌 순서로 추가될 수 있다.

addAllFirst: aCollection

수신자의 시작에 aCollection의 모든 요소를 추가하라. aCollection이 정렬되지 않은 경우 그 요소들은 #do: 순서가 아닌 순서로 추가될 수 있다.

addAllLast: aCollection

수신자의 끝에 aCollection의 모든 요소를 추가하라. aCollection이 정렬되지 않은 경우 그 요소들은 #do: 순서가 아닌 순서로 추가될 수 있다.

addFirst: anObject

수신자의 시작에 anObject를 추가하라. 주의: 해당 연산은 심각한 성능 저하를 야기할 수 있다.

addLast: anObject

수신자의 끝에 anObject를 추가하라.


RunArray: 기본

first

수신자 내 첫 번째 요소를 응답하라.

last

수신자의 마지막 요소를 응답하라.

size

수신자 내 요소의 개수를 응답하라.


RunArray: 복사하기

deepCopy

수신자의 요소의 복사본을 포함하는 수신자의 복사본을 응답하라 (-#copy를 사용).

shallowCopy

수신자의 복사본을 응답하라. 요소들은 복사되지 않는다.


RunArray: 열거하기

do: aBlock

수신자 내 모든 객체를 열거하고 각각을 aBlock으로 전달하라.

objectsAndRunLengthsDo: aBlock

수신자 내 모든 run을 열거하고 매 run마다 두 개의 매개변수를 aBlock으로 전달하라: 첫 번째는 반복 객체이고 두 번째는 복사본의 개수다.


RunArray: 제거하기

removeAtIndex: anIndex

수신자로부터 색인 anIndex에 위치한 객체를 제거하고 제거된 객체를 응답하라.

removeFirst

수신자로부터 첫 번째 객체를 제거하고 제거된 객체를 응답하라.

removeLast

수신자로부터 마지막 객체를 제거하고 제거된 객체를 응답하라.


RunArray: 검색하기

indexOf: anObject startingAt: anIndex ifAbsent: aBlock

수신자 내 anObject의 첫 번째 복사본의 색인을 응답하되 색인 anIndex에 위치한 요소에서 검색을 시작한다. 같은 객체를 찾을 수 없는 경우 aBlock을 평가한 결과를 응답하라.


RunArray: 검사하기

= anObject

수신자가 anObject와 같다면 true를 응답하라.

hash

수신자에 대한 해시값을 응답하라.


Notes