Diferença entre Conjunto e Lista

Diferença entre lista de matrizes e lista vinculada

Antes de entrarmos nas diferenças reais, vamos saber o que elas realmente são?

O que é um conjunto?

Nos deparamos com o conceito de Set em matemática e o Set aqui significa mais ou menos o mesmo. Sim, é uma coleção de elementos e, na maioria dos casos, uma coleção de elementos semelhantes. Você pode tentar adicionar esses elementos a um conjunto e tentar imprimir para entender como ele é realmente armazenado.

Entrada para um conjunto: 20, 50, 10, 30.

Na verdade, ele é armazenado em um conjunto como 10, 20, 30, 50.

Os elementos são classificados aqui e não são armazenados em sua ordem de inserção. Esse é um dos recursos do Set que sempre classifica os elementos antes de armazenar e, é claro, há exceções e um deles é o LinkedhashSet, pois mantém a ordem de inserção dos elementos..

Em termos de computador, o Conjunto inclui poucas propriedades adicionais, como Métodos e Herança. Os métodos são como funções e executam determinadas tarefas, como adicionar, remover ou iterar através do conjunto de elementos. A maioria de nós é bem conhecida do termo Herança e significa o mesmo aqui. Sim, podemos herdar um método de sua coleção, para que ele possa ser usado com a interface de conjunto. Novamente, estamos falando de um novo termo, ou seja, a Interface Set, e nada mais é do que todo o conjunto de elementos, incluindo os Métodos.

Como implementá-lo?

Apenas para uma melhor compreensão, representamos um conjunto com sua sintaxe. Na sintaxe abaixo, você pode identificar os diferentes tipos de Set, como HashSet e TreeSet.

importar java.util. *;

classe pública Setexample

public static void main (String args [])

int count [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Defina set = new HashSet ();

experimentar

para (int i = 0; i < 5; i++)

set.add (contagem [i]);

System.out.println (conjunto);

TreeSet sortedSeteg = novo TreeSet (conjunto);

System.out.println (“Aqui temos a saída classificada:”);

System.out.println (sortSeteg);

System.out.println (“Veja o primeiro elemento:“ + (Inteiro) sortedSet.first ());

System.out.println (“Veja o último elemento:“ + (Inteiro) sortedSet.last ());

catch (exceção e)

A saída do código acima é a seguinte.

[25, 17, 76, 12, 88]
Aqui temos a saída classificada:
[12, 17, 25, 76, 88]
Veja o Primeiro elemento: 12
Veja o último elemento: 88

O que é a lista?

Uma lista estende a coleção de maneira semelhante a um conjunto, mas mantém a ordem de inserção. Você tenta adicionar os seguintes nomes a uma lista e ver como é adicionado a ela.

A entrada para uma lista: John, Nancy, Mary, Alice.

Como é armazenado em uma lista: John, Nancy, Mary, Alice.

Apenas observe a ordem em que eles estão inseridos. Você pode identificar que 'John' é o primeiro elemento na entrada e na saída e é seguido pela mesma ordem em que os nomes são inseridos. Podemos até considerar essa uma das principais propriedades da List.

Como implementá-lo?

Vejamos alguns dos métodos da Lista, como ArrayList e LinkedList na sintaxe abaixo.

importar java.util. *;
public class Collectionssample

public static void main (String [] args)

Lista a1 = new ArrayList ();
a1.add ("João");
a1.add ("Nancy");
a1.add ("Maria");
a1.add ("Alice");
System.out.println (”os elementos ArrayList são”);
System.out.print ("\ t" + a1);

Lista l1 = new LinkedList ();
l1.add ("Silvia");
l1.add ("Arjun");
l1.add ("Deepika");
l1.add ("Susan");
System.out.println ();
System.out.println ("Os elementos do LinkedList são");
System.out.print ("\ t" + l1);

A saída da sintaxe acima é a seguinte.

Os elementos ArrayList são

[John, Nancy, Mary, Alice]

Elementos LinkedList

[Silvia, Arjun, Deepika, Susan]

É muito claro a partir do código acima que o ArrayList e o LinkedList mantém a ordem de inserção.

Como eles diferem?

  • Métodos e descrições:

O Conjunto e a Lista têm seus próprios métodos e vamos ver alguns deles aqui.

S.No Set - Métodos Lista - Métodos
1. adicionar() - É para adicionar objetos a uma coleção. void add (int index, Object obj) - Ele adiciona o objeto 'obj' ao 'índice' especificado da lista de chamadas e garante que nenhum elemento seja sobrescrito ao mudar os elementos anteriores.
2. Claro() - É para remover objetos de uma coleção. addAll booleano (índice int, Coleção c) - Ele adiciona a coleção inteira 'c' à lista de chamadas e no 'índice' especificado. Também garante que nenhum elemento seja substituído. Também podemos verificar a correção de sua operação examinando o valor de retorno. Retorna 'true' se a alteração for bem-sucedida, caso contrário, retorna um valor 'false'.
3. contém () - É para verificar se o conjunto contém um determinado objeto nele. Retorna um valor 'true' se o objeto estiver presente no Set. Objeto get (int index) - Retorna o elemento ou objeto no 'índice' especificado.
4. está vazia() - É para determinar se a coleção ajuda, pois não há elementos nela. Retorna um valor 'true' se não houver elemento. int lastIndexOf (Obj obj) - Funciona de maneira semelhante ao inverso do índice de() Método. Retorna a última ocorrência do Objeto especificado 'obj' e um valor '1' é retornado se não houver esse objeto na lista. Portanto, também pode ser usado como contém () Método da interface definida.
6. retirar() - É para remover um elemento de uma coleção, especificando-o como um parâmetro para o método. ListIterator listIterator () - Retorna um iterador para o índice inicial da Lista.
7. Tamanho() - É contar o número de objetos ou elementos que uma coleção possui. ListIterator listIterator (int index) - Ajuda na iteração através da Lista de chamada iniciando no 'índice' especificado.
8. - Remoção de objeto (int index) - Exclui o objeto no 'índice' especificado e retorna o elemento excluído como resultado. Também diminui os índices da lista resultante para refletir a exclusão.
9. - Conjunto de objetos (int index, Object obj) - É para atribuir o objeto 'obj' à lista de chamada no 'índice' especificado.
10. - Listar subList (int start, int end) - É para incluir os objetos do índice 'start' até o index 'end' na lista que invocou o Method.
  • Manutenção do pedido de inserção:

O Conjunto nunca mantém a ordem dos elementos em que são inseridos, enquanto a Lista o mantém. Há uma exceção a essa regra para o LinkedHashSet, pois ele mantém a ordem de inserção, mas o outro conjunto, como HashSet e TreeSet, classifica os elementos antes de armazená-lo. O mesmo é descrito nos exemplos abaixo.

Conjunto Entrada: Gato, Boneca, Maçã.

Armazenado como: Apple, Gato, Boneca.

Entrada da lista: Gato, Boneca, Maçã.

Armazenado como: Gato, Boneca, Maçã.

  • A presença de duplicados:

Um conjunto nunca permite duplicatas, enquanto uma lista permite. Se um valor duplicado precisar ser adicionado a uma lista, ele será substituído. Veja as amostras para duplicatas Set e List.

Entrada definida: 10, 20, 20, 50.

Armazenado como: 10, 20, 50.

Entrada da lista: 10, 20, 20, 50.

Armazenado como: 10, 20, 20, 50.

  • Valores nulos:

Um conjunto pode ter apenas um valor nulo, enquanto uma lista pode ter mais de um valor nulo e não está restrito a nenhum número.

Definir entrada: null, null, Man, Dog, Plane.

Armazenado como: null, Cão, Homem, Avião.

Entrada da lista: null, null, Man, Dog, Plane.

Armazenado como: null, null, Homem, Cão, Avião.

  • Uso do Iterator & ListIterator:

O método Iterator funciona bem com Set e List, enquanto o método ListIterator funciona apenas com List. O ListIterator pode ser usado para avançar ou retroceder na lista.

  • A presença da classe herdada:

O conjunto não tem classe herdada, enquanto a interface da lista possui um legado chamado como 'vetor'. Um vetor usa a interface de lista e, portanto, mantém a ordem de inserção. Devido aos esforços de sincronização, o desempenho do vetor em adições, exclusões e atualizações é um pouco mais lento.

  • Implementações:

Poucas implementações do conjunto são HashSet, LinkedHashSet e TreeSet. Poucas implementações de List incluem ArrayList e LinkedList.

Quando usar Set & List?

O uso do Conjunto e da lista depende exclusivamente da exigência de manutenção do pedido de inserção. Como aprendemos que um Conjunto nunca mantém a ordem de inserção, ele pode ser usado quando o pedido é de menor importância. De maneira semelhante, use a Lista quando precisar manter a sequência de inserção também.

Diferenças em forma de tabela:

S.No Diferenças em Conjunto Lista
1. Pedido de inserção Mantém o pedido de inserção. O primeiro inserido permanece em primeiro lugar e assim por diante, independentemente do seu valor. Ele nunca mantém o pedido de inserção.
2. Métodos Ele usa os métodos como add (), clear (), contém (), isEmpty (), remove () e size (). Ele usa os métodos como add (), addAll (), get (), lastIndexOf (), ListIterator () com ou sem parâmetro, remove (), set () e subList ().
3. Duplicatas Ele nunca permite duplicatas e, no caso de tais aparências, o valor é sobrescrito. Permite duplicatas.
4. Valores nulos Pode ter apenas um valor nulo no máximo. Pode ter qualquer número de valores nulos.
5. Uso do Iterator () e listIterator () Ele usa apenas o método iterador (). Ele usa o iterador () e o listIterator ().
6. Presença da classe herdada Não há classe herdada. Tem como classe Legacy chamada como um vetor.
7. Implementações Poucas implementações da interface Set são HashSet, LinkedHashSet e Tree Set. Poucas implementações da interface da lista são LinkedList e ArrayList.

Espero que tenhamos incluído todas as diferenças possíveis entre o Conjunto e a Lista. Se você acha que perdemos alguma coisa, informe-nos.