Key Difference – Lista vs Conjunto
A maioria das linguagens de programação usa arrays para armazenar um conjunto de dados do mesmo tipo. Uma grande desvantagem dos arrays é que, uma vez que o tamanho do array é declarado, ele não pode ser modificado. Se o programador quiser armazenar valores que excedam o tamanho do array, ele deve criar um novo array e copiar os elementos existentes para o novo array. Nessas situações, as coleções podem ser usadas. É possível adicionar elementos, deletar 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 de hierarquia de coleções. A interface base para outras interfaces é Collection. A principal diferença entre List e Set é que List suporta o armazenamento do mesmo elemento várias vezes, enquanto Set não suporta o armazenamento do mesmo elemento várias vezes. Portanto, um Set não permite duplicação.
O que é Lista?
A lista é uma interface que estende a interface Collection. Há vários métodos na interface Collection. O método add ajuda a adicionar um elemento. O 'método de remoção' é para remover um elemento. Existe o 'método addAll' para adicionar vários elementos enquanto o 'método removeAll' para remover os elementos da coleção. O método contém ajuda a descobrir se um objeto específico está presente na Lista ou não. O ‘containsAll’ serve para descobrir se um conjunto de objetos está presente na coleção. O método iterator é usado para percorrer os itens da lista. Como List estende Collection, todos os métodos de Collection pertencem a List. Além desses métodos, a Lista tem 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 realizadas de acordo com a posição. O programador pode fornecer o elemento de dados que deve ser adicionado ao índice. Portanto, ele será adicionado ao índice específico. Se o programador não fornecer um índice, o elemento será adicionado ao final da Lista. Também mantém a ordem inserida. Se o elemento 1 for adicionado e o elemento2 for adicionado, o elemento1 será antes do elemento2.
Figura 01: Lista e Conjunto
ArrayList, LinkedList, Vector são algumas classes que implementam List. Em um ArrayList, acessar um elemento é rápido, mas inserir e deletar é menor. ArrayList não é thread-safe. Acessar o mesmo ArrayList de vários threads pode não fornecer 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 List e Queue Both. Vector é semelhante a ArrayList, mas é seguro para pisar porque todos os métodos são sincronizados.
O que está definido?
Set é uma interface que estende a interface Collection. Como a interface Set estende Collection, todos os métodos de Collection também pertencem a Set. Um Conjunto não suporta valores de duplicação. Portanto, o programador não pode armazenar o mesmo elemento duas vezes. Ele mantém um conjunto único de elementos. A interface SortedSet estende a interface Set. SortedSet mantém os elementos em ordem de classificação. 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 a ordem inserida. Se os valores forem inseridos como a, x, b, ele pode armazenar 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 de classificação. 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 elementos duplicados.
Quais são as semelhanças entre lista e conjunto?
- As interfaces List e Set estendem a interface Collection.
- Ambos List e Set suportam operações como adicionar, remover elementos.
Qual é a diferença entre lista e conjunto?
Lista vs Conjunto |
|
List Interface é a subinterface de Collection que contém métodos para realizar operações como inserir, excluir com base no índice. | Set Interface é uma subinterface de Collection que contém métodos para realizar operações como inserir, deletar elementos enquanto mantém os elementos únicos. |
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 Elementos | |
List suporta duplicação de elementos. | Set não suporta duplicação de elementos. Os elementos são únicos. |
Resumo – Lista vs Conjunto
Coleções são usadas para armazenar elementos dinamicamente. Linguagens de programação como Java fornecem 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 List e Set. A principal diferença entre List e Set é que List suporta o armazenamento do mesmo elemento várias vezes, enquanto Set não suporta o armazenamento do mesmo elemento várias vezes. Set sempre mantém elementos únicos.