Respostas:
Primeiro: a List
é a Collection
. É um especialista Collection
, no entanto.
A Collection
é exatamente isso: uma coleção de itens. Você pode adicionar, remover, iterar e consultar a quantidade de itens existentes.
A List
adiciona informações sobre uma sequência definida de itens: Você pode obter o elemento na posição n , adicionar um elemento na posição n , remover o elemento na posição n .
Em um caso, Collection
você não pode fazer isso: "o quinto elemento desta coleção" não está definido, porque não há uma ordem definida.
Também existem outras coleções especializadas, por exemplo, uma Set
que adiciona o recurso de nunca conter o mesmo elemento duas vezes.
Collection
é a interface raiz da hierarquia java Collections. List
é uma sub-interface que define uma coleção ordenada, outras sub-interfaces são as Queue
que normalmente armazenam elementos prontos para processamento (por exemplo, pilha ).
O diagrama a seguir demonstra o relacionamento entre os diferentes tipos de coleção java:
Map
não é um Collection
.
API Java é o melhor para responder a isso
Coleção
A interface raiz na hierarquia de coleção. Uma coleção representa um grupo de objetos, conhecidos como seus elementos. Algumas coleções permitem elementos duplicados e outras não. Alguns são ordenados e outros não ordenados. O JDK não fornece implementações diretas dessa interface: fornece implementações de subinterfaces mais específicas, como Set e List. Essa interface é normalmente usada para distribuir coleções e manipulá-las onde a generalidade máxima é desejada.
Lista (estende a coleção)
Uma coleção ordenada (também conhecida como sequência). O usuário desta interface tem controle preciso sobre onde na lista cada elemento é inserido. O usuário pode acessar elementos por seu índice inteiro (posição na lista) e procurar elementos na lista.
Diferentemente dos conjuntos, as listas normalmente permitem elementos duplicados. Mais formalmente, as listas normalmente permitem pares de elementos e1 e e2, como e1.equals (e2), e geralmente permitem vários elementos nulos, se permitirem elementos nulos. Não é inconcebível que alguém queira implementar uma lista que proíba duplicatas, lançando exceções de tempo de execução quando o usuário tenta inseri-las, mas esperamos que esse uso seja raro.
List e Set são duas subclasses de Collection.
Na lista, os dados estão em ordem específica.
No conjunto, ele não pode conter os mesmos dados duas vezes.
Na coleção, ele apenas armazena dados sem uma ordem específica e pode conter dados duplicados.
Collection é uma interface de alto nível que descreve objetos Java que podem conter coleções de outros objetos. Não é muito específico sobre como eles são acessados, se várias cópias do mesmo objeto podem existir na mesma coleção ou se a ordem é importante. List é especificamente uma coleção ordenada de objetos. Se você colocar objetos em uma lista em uma ordem específica, eles permanecerão nessa ordem.
E decidir onde usar essas duas interfaces é muito menos importante do que decidir qual é a implementação concreta que você usa. Isso terá implicações para o desempenho de tempo e espaço do seu programa. Por exemplo, se você quiser uma lista, poderá usar um ArrayList ou um LinkedList, cada um dos quais terá implicações para o aplicativo. Para outros tipos de coleção (por exemplo, conjuntos), considerações semelhantes se aplicam.
Collection é a super interface da List, portanto, toda lista Java também é uma instância da coleção. As coleções são iteráveis apenas sequencialmente (e em nenhuma ordem específica), enquanto uma Lista permite o acesso a um elemento em uma determinada posição por meio do get(int index)
método