2010-02-20 5 views
3

SmallTalk Visual Works와 함께 제공되는 LinkedList 클래스를 사용하는 방법을 완전히 이해하지 못했습니다. 간단한 작업을 통해 클래스의 인스턴스를 만들 수 있습니다.SmallTalk에서 LinkedList 클래스 사용?

myList := LinkedList new. 

어떻게 노드를 추가합니까? 나는 Link 클래스의 인스턴스를 만들고 값을 설정하려고했지만 작동하지 않는 것 같습니다.

myLink := Link new. 
myLink value: 3. 

저는 smalltalk에 매우 익숙하며 도움이된다면 크게 도움이 될 것입니다.

답변

4

대신 오히려 OrderedCollection을 사용하는 방법을 익히십시오. 그런 다음 두 클래스의 메소드를 살펴보고 유사점과 차이점을 확인하십시오. 전체적인 차이점은 컬렉션 중간에 요소를 삽입하고 제거하는 성능에 있기 때문입니다. OrderedCollection에서는 전체 컬렉션이 복사되는 동안 LinkedList에서 "포인터"가 삽입 된 노드에 맞게 조정됩니다.

사실, LinkedList는 거의 사용되지 않습니다. 왜냐하면 OrderedCollection은 모든 필요가 아니라 대부분의 경우에 충분하기 때문입니다.

+0

사실, LinkedList는 Smalltalk Process 클래스의 구현 세부 사항 일뿐입니다. –

3

당신은 그것이 value 인스턴스 변수와 두 가지 방법 #value#value:를 추가하는 예를 들어, 서브 클래스 링크입니다 사용하기로되어있는 방법. 그러나 Janko가 말했듯이, 나는 OrderedCollection을 사용하는 것만으로는 안된다.