Qual é a diferença entre Collection
e List
em Java? Quando devo usar qual?
java
collections
Truong Ha
fonte
fonte
Respostas:
Primeiro: a
List
é aCollection
. É um especialistaCollection
, 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.fonte
Collection
é a interface raiz da hierarquia java Collections.List
é uma sub-interface que define uma coleção ordenada, outras sub-interfaces são asQueue
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:
fonte
Map
não é umCollection
.API Java é o melhor para responder a isso
Coleção
Lista (estende a coleção)
fonte
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.
fonte
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.
fonte
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étodofonte
Collection é a interface principal da hierarquia Java Collections e List (Sequence) é uma das sub interfaces que define uma coleção ordenada.
fonte