A maioria das linguagens de programação usa matrizes para armazenar um conjunto de dados do mesmo tipo. Uma grande desvantagem das matrizes é que, uma vez declarado o tamanho da matriz, ele não pode ser modificado. Se o programador quiser armazenar valores que excedam o tamanho da matriz, ele deverá criar uma nova matriz e copiar os elementos existentes na nova matriz. Nessas situações, as coleções podem ser usadas. É possível adicionar elementos, excluir elementos e muitas outras operações com o suporte de coleções. Existem diferentes tipos de coleções disponíveis em linguagens de programação como Java. List e Set são interfaces da hierarquia de coleções. A interface base para outras interfaces é Collection. o diferença chave entre Lista e Conjunto é que A lista suporta o armazenamento do mesmo elemento várias vezes, enquanto o Set não suporta o armazenamento do mesmo elemento várias vezes. Portanto, um conjunto não permite duplicação.
1. Visão geral e principais diferenças
2. O que é lista
3. O que está definido
4. Semelhanças entre lista e conjunto
5. Comparação lado a lado - lista versus conjunto em forma de tabela
6. Resumo
A lista é uma interface que estende a interface de coleção. Há vários métodos na interface Collection. O método add ajuda a adicionar um elemento. O 'método de remoção' é remover um elemento. Há 'método addAll' para adicionar vários elementos, enquanto 'método removeAll' para remover os elementos da coleção. O método contains ajuda a descobrir se um objeto específico está presente na lista ou não. O 'containsAll' é para descobrir se um conjunto de objetos está presente na coleção. O método iterador é usado para percorrer os itens da lista. Como a lista estende a coleção, todos os métodos da coleção pertencem à lista. Além desses métodos, a Lista possui métodos como get e set. O programador pode obter um valor em um índice específico usando o método get. O programador pode definir um valor em um índice específico usando o método set. O 'indexOf' é usado para encontrar o índice de um elemento.
Em uma lista, as operações podem ser executadas de acordo com a posição. O programador pode fornecer o elemento de dados que deve ser adicionado ao índice. Por isso, será adicionado ao índice específico. Se o programador não fornecer um índice, o elemento será adicionado ao final da lista. Ele também mantém o pedido inserido. Se o elemento 1 for adicionado e o elemento2 for adicionado, o elemento1 será anterior ao elemento2.
Figura 01: Lista e conjunto
ArrayList, LinkedList, Vector são algumas classes que implementam List. Em um ArrayList, o acesso a um elemento é rápido, mas a inserção e exclusão são menores. ArrayList não é seguro para threads. Acessar o mesmo ArrayList de vários threads pode não dar o mesmo resultado. Em uma LinkedList, os elementos são vinculados tanto para trás quanto para frente. Inserir e excluir elementos usando um LinkedList é mais rápido que o ArrayList. O LinkedList implementa Lista e Fila Ambos. O vetor é semelhante ao ArrayList, mas é seguro porque todos os métodos são sincronizados.
Set é uma interface que estende a interface Collection. Como a interface do Set estende o Collection, todos os métodos de Collection também pertencem ao Set. Um conjunto não suporta valores de duplicação. Portanto, o programador não pode armazenar o mesmo elemento duas vezes. Mantém um conjunto exclusivo de elementos. A interface SortedSet estende a interface Set. SortedSet mantém os elementos em ordem classificada. A interface NavigableSet estende SortedSet. O NavigableSet fornece métodos de navegação como inferior, piso, teto etc..
HashSet, LinkedHashSet e TreeSet são algumas classes que implementam a interface Set. o HashSet implementa a interface Set. Não mantém o pedido inserido. Se os valores forem inseridos como a, x, b, eles poderão ser armazenados como, x, a, b. o LinkedSet mantém a ordem inserida. Se os elementos forem inseridos na ordem a, x, b, a ordem de armazenamento será a, x, b. o TreeSet implementa Set e NavigableSet. Ele não mantém a ordem de inserção, mas armazena os elementos na ordem classificada. Se a ordem inserida for a, c, b, os elementos serão armazenados como a, b, c. Todos os HashSet, LinkedHashSet e TreeSet não terão nenhum elemento duplicado.
Lista vs Conjunto | |
List Interface é a subinterface de Collection que contém métodos para executar operações como inserir, excluir com base no índice. | Set Interface é uma subinterface de Collection que contém métodos para executar operações como inserir, excluir elementos e manter os elementos exclusivos. |
Aulas | |
ArrayList, Vector e LinkedList são classes que implementam a interface List. | HashSet, LinkedHashSet e TreeSet são classes que implementam a interface Set. |
Duplicação de elemento | |
Lista suporta duplicação de elementos. | Conjunto não suporta duplicação de elementos. Os elementos são únicos. |
Coleções são usadas para armazenar elementos dinamicamente. Linguagens de programação como Java fornecem a interface Collection. List e Set são duas interfaces que pertencem à interface Collection. Ambas as interfaces estendem a coleção. Este artigo discutiu a diferença entre Lista e Conjunto. A principal diferença entre Lista e Conjunto é que a Lista suporta o armazenamento do mesmo elemento várias vezes, enquanto o Conjunto não suporta o armazenamento do mesmo elemento várias vezes. Definir sempre mantém elementos exclusivos.
1.Point, Tutoriais. “Java Collections.”, Tutorials Point, 8 de janeiro de 2018. Disponível aqui