Diferença entre lista e conjunto em Java

Autor: Laura McKinney
Data De Criação: 2 Abril 2021
Data De Atualização: 16 Poderia 2024
Anonim
Diferença entre lista e conjunto em Java - Tecnologia
Diferença entre lista e conjunto em Java - Tecnologia

Contente


A interface de lista e conjunto estende a coleção. Ambos mantêm a coleção de elementos ou objetos. Mas, a principal diferença que os distingue é Lista é uma coleção de elementos ordenados, os elementos são adicionados, removidos ou acessados ​​com a ajuda de uma variável de índice. Por outro lado, Set é uma coleção de objetos em que a coleção não permite elementos duplicados nela. Vamos estudar mais algumas diferenças entre as interfaces List e Set com a ajuda do gráfico de comparação mostrado abaixo.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoLista Conjunto
BasicLista mantém a sequência dos elementos armazenados em uma lista.O conjunto não mantém particularmente o pedido de inserção, mas o Linked HashSet mantém o pedido de inserção.
DuplicaçãoA lista pode conter elementos duplicados.O método add () retorna false se você tentar inserir os elementos duplicados.
MétodosAlém dos métodos definidos em Coleção, a Lista define alguns de seus próprios métodos.Conjunto não define nenhum método adicional.
Implementação Lista é implementada por ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Conjunto é implementado por HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Definição de Lista

A interface de lista estende a interface de coleção. Uma lista é uma coleção ordenada de elementos ou objetos. Ao contrário de Definir, a Lista pode conter elementos duplicados. Além dos métodos definidos na Lista de coleções, alguns métodos são definidos, como os métodos get () e set () baseados em índice. Os métodos add () e remove () herdados de Collection que adicionam ou removem o elemento especificado do índice especificado no argumento do método. Lista é um tipo de matriz cujo tamanho aumenta à medida que adicionamos elementos à lista.

Lista não define nenhum método para operar no intervalo de índices em uma lista. Ele define um método sublist () que retorna uma sublist da lista original de um intervalo especificado. As alterações que você faz na sublist também aparecem na lista original. A interface de lista é implementada por ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.


Definição de Conjunto

A interface Set estende a interface Collection. A interface do conjunto é uma coleção ou um grupo de objetos que não contém nenhum objeto duplicado. Isso significa que duas referências não podem se referir a um objeto ou uma referência não pode se referir a dois objetos ou não podem haver duas referências referentes a Nulo. A ordem ou sequência do elemento não é um conjunto importante, mas não é que proíba o conjunto ordenado.

A interface Set não define nenhum método além do método definido em Collection. Em vez disso, restringe os métodos add () e addall () da coleção para adicionar qualquer objeto duplicado em uma coleção. Se você tentar adicionar qualquer objeto duplicado em uma coleção usando o método add () de Collection, ele retornará false. Caso contrário, ele retornará verdadeiro. A interface do conjunto é implementada por HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

  1. A sequência de elementos / objeto em uma coleção é mantida em List, enquanto Set não mantém a ordem dos elementos, mas há uma exceção LinkedHashSet para manter a ordem de inserção.
  2. A lista pode ter elementos duplicados, pois identifica qualquer elemento com seu índice, mas Set não permite nenhum elemento duplicado, pois não possui nenhum tipo de elemento de índice para identificar qualquer objeto em uma coleção.
  3. Lista define alguns métodos por si só, além dos métodos definidos em Coleção. Por outro lado, Set não define nenhum método próprio, mas restringe os métodos de Collection para adicionar quaisquer elementos duplicados.
  4. A lista é implementada pelas interfaces ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Por outro lado, Set é implementado pelas interfaces HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

Conclusão:

O uso da interface List e Set depende dos requisitos. Se a ordem dos objetos / elementos é importante, você deve usar a interface de lista. Se você não precisar de elementos duplicados em sua coleção, deverá usar a interface Definir