GnuSmalltalkUsersGuide:BaseChapter 101
- LinkedList
LinkedList
네임스페이스 Smalltalk에 정의됨
슈퍼클래스: SequenceableCollection
범주: 컬렉션-순차가능
- 나는 연결 리스트로 접근 및 조작하는 메서드를 제공한다. 나는 연결 리스트의 요소들을 Link의 서브클래스로 가정하는데, 그 이유는 메서드를 구현하기 위해 Link 클래스가 제공하는 메서드를 사용하기 때문이다.
LinkedList: 접근하기
at: index
색인에 해당하는 요소를 연결 리스트로 리턴하라.
at: index put: object
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.
LinkedList: 추가하기
add: aLink
리스트 끝에 aLink를 추가하라; aLink를 리턴하라.
addFirst: aLink
리스트 앞에 aLink 를 추가하라; aLink를 리턴하라.
addLast: aLink
리스트 끝에 aLink를 추가하라; aLink를 리턴하라.
remove: aLink ifAbsent: aBlock
리스트에서 aLink를 제거한 후 리턴하고, 리스트에서 찾을 수 없는 경우 aBlock을 호출하라.
removeFirst
리스트에서 첫 번째 요소를 제거한 후 리턴하고, 리스트가 빈 경우 오류를 응답하라.
removeLast
리스트에서 마지막 요소를 제거한 후 리턴하고, 리스트가 빈 경우 오류를 응답하라.
LinkedList: 열거하기
do: aBlock
리스트 내 각 객체를 열거하고 이를 aBlock을 전달하라 (실제 행위는 사용 중인 Link의 서브클래스에 따라 좌우될 것이다).
identityIncludes: anObject
우리가 anObject 객체를 포함하는지 응답하라.
includes: anObject
우리가 anObject를 포함하는지 응답하라.
LinkedList: 검사하기
isEmpty
리스트가 어떤 멤버도 포함하지 않은 경우 true를 리턴하라.
notEmpty
리스트가 최소한 하나의 멤버라도 포함한 경우 true를 리턴하라.
size
리스트 내 요소의 수를 응답하라. 경고: 이것은 O(n)이다.