Set

Set Swift

Um Set, ou conjunto, armazena valores de um mesmo tipo, sem repetição, em uma coleção sem uma ordem definida. Você pode usar um set ao invés de um array quando a ordem dos elementos não é importante ou quando você precisa garantir que um item apareça apenas uma vez na coleção.

Criando um Set

Para criar um Set com um array literal, definindo um ou mais valores iniciais, utiliza-se o seguinte esquema:

Caso você esteja declarando um Set utilizando um array literal que possua dados de apenas um tipo, o Swift consegue inferir qual tipo de dado aquela coleção possuirá, reduzindo então a quantidade de código necessária:

Criando um Set sem nenhum elemento dentro:

Adicionando Elementos

Para adicionar um valor em um Set, é necessário utilizar o método insert(_:):

Removendo Elementos

Para remover um elemento, é necessário utilizar o método remove(_:). Este método removerá o elemento caso ele seja membro do Set, e retornará o valor. Caso o elemento não exista no Set, o método retorna nil:

Também é possível remover todos os itens de um Set através do método removeAll():

Verificando a Existência de Elementos

Para verificar se um Set contém um elemento, utilize o método contains(_:). Caso o elemento exista, o método retornará true, caso contrário, retornará false:

Iterando em um Set

Para passar por todos os valores de um Set, você pode utilizar o for-in loop:

Operações com Set

O Set possui um diferencial em relação a outras coleções como arrays e dicionários, pois permite realizar uma série de operações matemáticas de conjunto em seus elementos. Estão listados a seguir alguns métodos fundamentais e suas funcionalidades:

  • .union(_:): Cria um novo Set contendo todos os valores de ambos os sets.
  • .intersection(_:): Cria um novo Set contendo os valores em comum em ambos os sets.
  • .subtracting(_:): Cria um novo Set contendo apenas os valores que não estão presentes no set passado como parâmetro.
  • .symmetricDifference(_:): Cria um novo Set contendo os valores de ambos os sets, excluindo os valores em comum.

Também existem métodos para verificar o relacionamento entre diferentes Sets:

  • ==: Determina se dois Sets possuem exatamente os mesmos valores.
  • isSubset(of:): Determina se um set está contido no set passado como parâmetro.
  • isSuperset(of:): Determina se um set contém o set passado como parâmetro.
  • isDisjoint(with:): Determina se dois sets não possuem valores em comum.
Anterior
Anterior

Dictionary

Próximo
Próximo

Array