GnuSmalltalkUsersGuide:BaseChapter 143

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.
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