packagebr.com.modulo2.cap04;importbr.com.modulo2.dto.Funcionario;importjava.util.ArrayList;publicclassAtividade6{publicAtividade6(){}publicArrayListordena(ArrayListlista){for(inti=0;i<lista.size()-1;i++){for(intj=i+1;j<lista.size();j++){if(lista.get(i).nome.compareTo(lista.get(j).nome)>0){//Não sei o método que compara ArrayList como se fosse o compareTo() da String/*lista.get(lista.size() + 1) = lista.get(i); lista.get(j) = lista.get(i); lista.get(i) = lista.get(lista.size() + 1);*/}}}}publicstaticvoidmain(String[]args){ArrayListal=newArrayList();al.add(newFuncionario(1001,"Joao da Silva","[CPF removido]",'M',2000.00));al.add(newFuncionario(1002,"Maria da Silva","[CPF removido]",'F',1500.00));al.add(newFuncionario(1003,"Jose da Silva","[CPF removido]",'M',10000.00));for(inti=0;i<al.size();i++){System.out.println(al.get(i));}}}
packagebr.com.modulo2.cap04;importbr.com.modulo2.dto.Funcionario;importjava.text.NumberFormat;importjava.util.ArrayList;publicclassAtividade6{publicAtividade6(){}privatestaticArrayListal=newArrayList();privatestaticStringformata(doublevalor){NumberFormatf=NumberFormat.getCurrencyInstance();returnf.format(valor);}privatestaticvoidordena(){for(inti=0;i<al.size()-1;i++){for(intj=i+1;j<al.size();j++){Funcionariof1=(Funcionario)al.get(i);Funcionariof2=(Funcionario)al.get(j);if(f1.getNome().compareTo(f2.getNome())>0){al.set(i,f2);al.set(j,f1);}}}}privatestaticvoidimprime(){doubletotal=0,maior=0,menor=Double.MAX_VALUE,media=0;System.out.println("Folha de Pagamento da Família Silva");System.out.println("-----------------------------------");System.out.println();System.out.println("Código\tNome\t\t\tSexo\tSalário");System.out.println();for(inti=0;i<al.size();i++){Funcionariof=(Funcionario)al.get(i);if(f.getSalario()>maior){maior=f.getSalario();}if(f.getSalario()<menor){menor=f.getSalario();}total+=f.getSalario();Strings=f.getCodigo()+"\t\t"+f.getNome()+"\t\t"+f.getSexo()+"\t\t"+formata(f.getSalario());System.out.println(s);}media=total/al.size();System.out.println("Total:"+formata(total));System.out.println("Maior:"+formata(maior));System.out.println("Menor:"+formata(menor));System.out.println("Média:"+formata(media));}privatestaticvoidpreenche(){al.add(newFuncionario(1,"Joao da Silva","[CPF removido]",'M',1245.58));al.add(newFuncionario(2,"Maria da Silva","[CPF removido]",'F',5245.58));al.add(newFuncionario(3,"Jose da Silva","[CPF removido]",'M',2245.58));al.add(newFuncionario(4,"Pedro da Silva","[CPF removido]",'M',875.58));al.add(newFuncionario(5,"Mara da Silva","[CPF removido]",'F',1875.58));al.add(newFuncionario(6,"Antonio da Silva","[CPF removido]",'M',1000.0));}publicstaticvoidmain(String[]args){preenche();ordena();imprime();}}
Conseguiiiiiiiiii...
Nem usei isso...mas eu dei uma lida...vlwww!!!
m0ska
De repente usando um Set vc se dá melhor!
T
thingol
Você está usando Bubblesort, não?
Conselho: esqueça que o Bubblesort existe. Ele é um dos modos mais lentos de ordenar uma lista. Só se sua lista tiver uns 5 ou 6 elementos, no máximo; mais que isso e você vai passar a ter problemas sérios.
Esqueça que é possível ordenar uma lista “na mão”.
Na sua vida profissional, você tem de saber duas coisas:
Como usar coisas prontas, que são testadas e super-otimizadas;
Como não reimplementar coisas só porque você não entendeu como se usam as coisas prontas.
Neste site tem alguns métodos de ordenação com animação mostrando o que ocorre na execução…
T
thingol
Ah, certo, não sabia que era lição de casa.
De qualquer maneira, o problema é que os professores ensinam certas coisas mas não dizem que é para “não usar”.
O aluno acaba usando isso a vida inteira…
rsakurai
Acho que se o claudneto está aprendendo a fazer BubbleSort é porque na facul ele está cursando alguma disciplina de ordenação de dados.
Normalmente quando aprendemos a programar fazemos aquele for tosco comparando todos os valores de um vetor, para ver se está na ordem ou não. Depois aprendemos a usar o bubble sort, que já melhor que nada.
Provavelmente ele vai ver também como usar MergeSort, QuickSort, etc… para entender como funciona uma ordenação e também poder comparar qual método é melhor.
T
thingol
Espero que sim. (No meu tempo, há mais de 20 anos atrás, os algoritmos eram os mesmos - quicksort, bubblesort, heapsort etc. - e os métodos de ensino eram os mesmos, mas usando Pascal, não Java, que não existia naquele tempo).
rsakurai
Acho que os algoritmos não mudaram porque são simples de serem implementados.
Mas no caso do claudneto, acho que ele já deveria ter aprendido comparar 2 objetos, para depois começar a fazer algoritmos de ordenação de objetos.
claudneto
Na verdade é do curso da Impacta…
O professor só comentou sobre ordenação de Arrays e Arraylists…e mostrou o Bubblesort…
Mas comentou que é o pior e que tem outros melhores…