SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
15.11.2024

Lição: 38: Ordenação e Filtragem de Coleções

Em Swift, coleções como arrays e dicionários oferecem capacidades poderosas para manipulação de dados. Esta aula se concentra em como ordenar e filtrar essas coleções de maneira eficiente, aproveitando as capacidades de programação funcional do Swift.

Ordenação de Coleções

A ordenação é uma operação comum em coleções que rearranja os elementos em uma ordem específica. Swift fornece vários métodos para ordenar arrays, incluindo sorted() e sort().

Exemplo de Ordenação de um Array

// Exemplo de array de inteiros
var numeros = [5, 3, 9, 1, 4, 7]

// Usando sorted() para criar um novo array ordenado
let numerosOrdenados = numeros.sorted()
print("Números Ordenados: \(numerosOrdenados)") // Saída: [1, 3, 4, 5, 7, 9]

// Usando sort() para ordenar o array original in-place
numeros.sort()
print("Números após sort(): \(numeros)") // Saída: [1, 3, 4, 5, 7, 9]

Ordenação Personalizada

Você também pode fornecer um critério de ordenação personalizado usando uma closure. Por exemplo, para ordenar um array de strings pelo tamanho delas:

let palavras = ["maçã", "banana", "kiwi", "laranja", "pera"]

// Ordenação personalizada por tamanho da palavra
let palavrasOrdenadas = palavras.sorted { $0.count < $1.count }
print("Palavras Ordenadas por Tamanho: \(palavrasOrdenadas)") // Saída: ["kiwi", "pera", "maçã", "banana", "laranja"]

Filtragem de Coleções

A filtragem permite que você crie uma nova coleção que inclua apenas os elementos que atendem a certos critérios. O método filter é usado para alcançar isso.

Exemplo de Filtragem de um Array

var idades = [15, 22, 30, 18, 25, 28]

// Filtrando idades que são menores que 21
let idadesAdultas = idades.filter { $0 >= 21 }
print("Idades Adultas: \(idadesAdultas)") // Saída: [22, 30, 25, 28]

Combinando Ordenação e Filtragem

Você pode combinar ordenação e filtragem para processar coleções de forma mais eficaz. Por exemplo, vamos filtrar apenas números pares e, em seguida, ordená-los:

let numerosMisturados = [5, 2, 9, 4, 7, 6, 3]

// Filtrando números pares e ordenando-os
let numerosParesOrdenados = numerosMisturados.filter { $0 % 2 == 0 }.sorted()
print("Números Pares Ordenados: \(numerosParesOrdenados)") // Saída: [2, 4, 6]

Ordenação e Filtragem de Coleções de Dicionários

Dicionários são outro tipo comum de coleção em Swift. Para ordenar um dicionário, normalmente você o converte em um array de pares chave-valor.

Exemplo de Ordenação de um Dicionário

let notas = ["Alice": 88, "Bob": 95, "Charlie": 85]

// Ordenando o dicionário pelas notas
let notasOrdenadas = notas.sorted { $0.value > $1.value }
print("Notas Ordenadas: \(notasOrdenadas)")
// Saída: [("Bob", 95), ("Alice", 88), ("Charlie", 85)]

Filtragem de um Dicionário

Para filtrar um dicionário, você pode usar o método filter da mesma forma que nos arrays.

// Filtrando para obter apenas notas maiores que 85
let notasAltas = notas.filter { $0.value > 85 }
print("Notas Altas: \(notasAltas)") 
// Saída: ["Bob": 95, "Alice": 88]

Conclusão

Nesta aula, exploramos como ordenar e filtrar coleções em Swift. Você aprendeu a manipular arrays e dicionários com métodos integrados como sorted(), sort(), e filter(). Essas operações são essenciais para o processamento de dados e ajudarão você a escrever um código Swift mais eficiente e limpo. Continue praticando essas técnicas para se sentir à vontade ao manipular coleções em várias situações!

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!