Duvida Com Collection

Pessoal, estou estudando para a certificacao pelo livro da Kathy Sierra, e estou com uma duvida danada aqui no capitulo de Collection
Existe uma definicao de Ordered e Sorted collections, e nao estou conseguindo destinguir na pratica a diferenca entre as duas definicoes…alguem poderia ajudar???
valeu

Por exemplo

 List<Integer> lista = new ArrayList<>();
 lista.add(7);
 lista.add(6);

caso você faça um foreach irá imprimir 7 e 6 … ou seja está de acordo com o que você inseriu (ordered).

caso queria que seja ordenado de acordo com a “naturalidade” (sorted), ex: irá imprimir primeiro 6 e depois 7. Collections.sort(lista).

Espero ter ajudado.

Abraços.

Na verdade Ordered é ordenado e Sorted é classificado.
A interface List, por exemplo, é ordenada pela ordem de inserção, já TreeMap e TreeSet, das interfaces SortedSet e SortedMap, são classificadas, ou seja, naturalmente e independente da ordem de inserção já tem uma forma de classificação que é em ordem crescente

Para o exame geralmente vc precisa conhecer só quais classes são ordenadas e quais são classificadas, mas por via das dúvidas não custa nada aprender direito…

  • List:
    ArrayList: ordered
    Vector: ordered
    LinkedList: ordered

  • Set:
    HashSet: -
    LinkedHashSet: ordered

  • SortedSet:
    TreeSet: sorted

  • Map:
    HashMap: -
    Hashtable: -
    LinkedHashMap: ordered

  • SortedMap
    TreeMap: sorted

Ordenado (Ordered) - É a ordem em que os elementos do conjunto serão mostrados na tela ao ser iterado. Um ArrayList é ordenado pela posição do índice. LinkedHashSet mantem a ordem estabelecida pela posição, o ultimo elemento a ser inserido sera o ultimo elemento do conjunto, diferentemente do ArrayList que você pode inserir um elemento em um índice especifico. Alguns conjuntos mantém a ordem natural dos elementos, esses conjuntos não são apenas ordenados, mas também classificados.

Classificados (Sorted) - Um conjunto classificado significa que a ordem do conjunto está determinada por alguma(s) regra(s), conhecida(s) como ordem de classificação. Semelhante ao order by do SQL.
A classificação é feita com base em propriedades do próprio objeto. Na maioria das vezes a ordem é feita utilizando a ordem natural, que nada mais é que a ordem alfabética para String e ordem numérica crescente para objetos Integer, porem e para Objetos do tipo por exemplo Cliente? Não existe uma ordem naturam para esse objeto, pelo menos até que o desenvolvedor crie uma, por meio do Comparator ou Comparable.