1
resposta

InsertSort usando ArrayList

Professor, boa noite!

Gostaria que se possível mostrasse um código que implemente a ordenação InserSort em ArrayList, ordenando pelo preço do produto (cod, nome, preco). Em um vetor compreendi, mas quando utilizo esse componente gráfico não consigo.

1 resposta

Olá Pedriana,

você deve estar se confundindo em algum ponto: o ArrayList não é um componente gráfico. Ele é uma classe, assim como a String, por exemplo. O ArrayList implementa algumas funções de um array, como inserção, remoção e aumento de capacidade.

Dito isso, o modo de acesso a um elemento de um ArrayList é idêntico ao de um array:

meuArrayList[indice]

Assim, o código de um InsertionSort será o mesmo que é utilizado para um array normal.

No seu caso, existe uma outra coisa a ser pensada: como comparar dois Produtos. Isso pode ser feito criando um novo método

bool MenorQue(Produto outroProduto)

na sua classe Produto. Ele deve implementar a lógica que você quer utilizar para saber se um produto é menor que o outro, por exemplo:

return this.preco < outroProduto.preco || this.cod < outroProduto.cod

Assim, ao invés de fazer uma condição direta usando o operador < como:

produtos[analise].getPreco() < produtos[analise -1].getPreco()

você poderia chamar algo como:

produtos[analise].Menorque(produtos[analise -1])