QUICK REFERENCE: CLASSE ORDERED COLLECTION

Como o nome mesmo diz, temos uma coleção ordenada de dados. Pode ser usado como um pequeno arquivo. Depois de alterações, o projeto tem que ser re-salvo, o que pode não ser simples para determinados usuários.

Pode também ser usado para receber dados de um arquivo lido do "disco" (repositório) Flash do micro OLPC. Vamos ver como fazer isso, em breve.

Para criar um objeto Ordered Collection precisamos escrever o usual "new". Qualquer coisa como:

            |oC|
            oC := OrderedCollection new.

Como na lição anterior temos alguns mini-exercícios para mostrar os métodos:


add: 'x'

Para adicionar o string x depois do último elemento da coleção.

addFirst: 'x'

Para adicionar o string x como primeiro elemento da coleção.

size

Retorna a qunatidade de elementos.

asString

Converte um elemento da coleção para ser um objeto String.

at:n

Retorna o string da posição n.

Exemplo

| oC |
oC:= OrderedCollection new.
oC add: 'Mary'.
oC addFirst: 'John'. 
oC add: 'Carl'.
1 to: oC size do: [
:i | i+1.  
Transcript show:   ((oC at: i),'\')withCRs . ]

IMPORTANTE: Veja como fizemos um loop lendo todos os elementos da coleção. Nós vimos essa "fórmula" numa lição anterior:

1 to: last do: [
:i | i+1. 

"fazer alguma coisa" 

 ]

Nós usamos também dois métodos da Classe String (um elemento da OrderedCollection é um objeto String) para concatenar uma '\" e fazer o carriage return.

Resultado

John
Mary
Carl

at:n put:'x'

Substitui o elemento da posição n pelo string 'x'.

Exemplo

| oC  |
oC:= OrderedCollection new.
oC add: 'John'.
oC add: 'Mary'.
oC add: 'Carl'.
oC at: 2 put: 'Peter'.
1 to: oC size do: [
:i | i+1.  
Transcript show:   ((oC at: i),'\')withCRs . ]

Resultado

John
Peter
Carl

add:'x' afterIndex: n

add:'x' after: 'y'

add:'x' before: 'y'

Exemplo

| oC  |
oC:= OrderedCollection new.
oC add: 'John'.
oC add: 'Mary'.
oC add: 'Carl'.
oC add:'Peter' afterIndex: 1 .
oC add:'Hans' after: 'Mary' .
oC add:'Primo' before: 'John' .
1 to: oC size do: [
:i | i+1.  
Transcript show:   ((oC at: i),'\')withCRs . ].
 

Resultado

Primo
John
Peter
Mary
Hans
Carl

addAll: oC

Adiciona a nova Ordered Collection oC depois dessa Ordered Collection.

addAllFirst: oC

Adiciona a nova Ordered Collection oC antes dessa Ordered Collection.

Exemplo

 | oC1 oC2 |
oC1 := OrderedCollection new.
oC1 add: 'John'.
oC1 add: 'Mary'.
oC1 add: 'Carl'.
oC2 := OrderedCollection new.
oC2 add: 'Hans'.
oC2 add: 'Peter'.
oC2 add: 'Andre'.

oC1 addAllFirst: oC2.
1 to: oC1 size do: [
:i | i+1.  
Transcript show:   ((oC1 at: i),'\')withCRs . ]. 

Resultado

Hans
Peter
Andre
John
Mary
Carl

copyFrom: i1 to: i2

Retorna a Ordered Collection desde a posição i1 até i2.

Exemplo

| oC1 oC2 |
oC1 := OrderedCollection new.
oC1 add: 'John'.
oC1 add: 'Mary'.
oC1 add: 'Carl'.

oC2:= oC1 copyFrom: 1 to: 2. 
 
1 to: oC2 size do: [
:i | i+1.  
Transcript show:   ((oC2 at: i),'\')withCRs . ]. 

Resultado

John
Mary

reversed

Retorna a Ordered Collection tendo os elementos em ordem reversa.

Exemplo

 | oC1 oC2 |
oC1 := OrderedCollection new.
oC1 add: 'John'.
oC1 add: 'Mary'.
oC1 add: 'Carl'.

oC2:= oC1 reversed. 
 
1 to: oC2 size do: [
:i | i+1.  
Transcript show:   ((oC2 at: i),'\')withCRs . ]. 

Resultado

Carl
Mary
John

removeAt: i

Remove o elemento na posição.

Exemplo

| oC  |
oC:= OrderedCollection new.
oC add: 'John'.
oC add: 'Mary'.
oC add: 'Carl'.
 oC removeAt: 2.
1 to: oC size do: [
:i | i+1.  
Transcript show:   ((oC at: i),'\')withCRs . ].
 

Resultado

John
Carl

removeFirst

removeLast


              LIÇÃO ANTERIOR       PRÓXIMA LIÇÃO             
ÍNDICE HOMEPAGE