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.
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.
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])