Collections

4 respostas
C

Olá pessoa estou com dúvida sobre a seguinte questão de um simulado que fiz:

Which collection classes allow the elements to be accessed in their order of insertion?

A. HashSet
B. ArrayList
C. TreeMap
D. LinkedHashSet
E. PriorityQueue

A resposta é o item B e D.

A letra D entendi, mas quanto a letra C, tive dúvidas.
1 - Quanto ao mode de ser acessada não tem nada a ver com o modo de como as classes são ordenadas e classificadas ?
Pois, no quadro que consta no livro da Kate que demonstra as classes diz que a maneira de ordenacao por ordem de insercao é da LinkedHashSet e LinkedHashMap e que o ArrayList é por indice, entao cheguei a conclusao que o modo de ser acessada nao tem nada a ver como sao ordenadas ou classificadas, já que na seguinte questao ArrayList é um item correto, certo ???
O que tem relevância para as classes que implementam List é o índice, mas já que de acordo com a questão ArrayList a acessado por ordem de insercao entao se tivesse Vector e LinkedList como opcões também estariam certos??

Outra dúvida: a unica classe que pode ser ordenada por ultimo elemento acessado é a LinkedHashMap ? pois peguei uma errata do livro que diz que LinkedHashSet tbm é… mas tbm peguei uma versao em ingles em pdf, e diz que só LinkedHashMap, alguem pode me confirmar isso ?

Obrigado.

4 Respostas

T

Cuidado que em inglês existem as duas palavras "sort" e "order" que em português ficaram com a mesma tradução (ordem).

O que em inglês é normalmente "sort" ou "lexicographical order" é a ordenação alfabética ou numérica (por exemplo, "Acre" < "Amazonas" < "Bahia" < "Ceará". Esta coleção está "sorted").

O que em inglês é simplesmente "order" é a seqüência de entrada (por exemplo, se você entrou com os seguintes números nesta seqüência: 3, 1, 4, 1, 5, 9, 2, 6, e quer recuperá-los na mesma "order", então você precisa de uma coleção que tem seqüência, como a ArrayList, LinkedList ou LinkedHashSet ou LinkedHashMap.)

L

Mesmo havendo índice em ArrayList, eu posso sempre dar um “add(E e)”, certo? E este sempre vai ser inserido no fim do array, não vai? Por isso que se diz que é possível um ArrayList apresentar no iterator os elementos pela ordem de inserção. É possível inserir no meio, claro! Mas se eu não fizer isso, vai ser a ordem de inserção.

Tanto LinkedHashMap quanto LinkedHashSet mantém a ordenação da inserção, com a diferença que estes não acrescentam objetos repetidos.

C

Certo,

E as outras classes que também implementam List, como LinkedList e Vector, estariam correto se estivessem como opcão no lugar de ArrayList ?

Djonatah

cadu.sousa:
Certo,

E as outras classes que também implementam List, como LinkedList e Vector, estariam correto se estivessem como opcão no lugar de ArrayList ?

Sim \o/

Criado 29 de dezembro de 2008
Ultima resposta 29 de dez. de 2008
Respostas 4
Participantes 4