Exemplo de como ordenar facilmente um objeto alfabeticamente pelo nome
Classe Pessoa Ex2Pessoa.java
Classe Pessoa Ex2Pessoa.java
public class Ex2Pessoa implements ComparableClasse principal Ex2.java{ private String nome; private int idade; private int sexo; private int vacinada; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } public int getSexo() { return sexo; } public void setSexo(int sexo) { this.sexo = sexo; } public int getVacinada() { return vacinada; } public void setVacinada(int vacinada) { this.vacinada = vacinada; } @Override public int compareTo(Ex2Pessoa o) { // TODO Auto-generated method stub return 0; } }
/*
* 1) Crie uma classe Pessoa contendo os seguintes atributos: nome, idade, sexo e vacinada.
Use esta classe para efetuar uma pesquisa sobre dengue
envolvendo 10 pessoas. Uma vez finalizado a leitura dos dados, mostre:
a) A quantidade de mulheres pesquisadas;
b) A porcentagem de homens que se vacinaram contra dengue (em relação à quantidade de homens pesquisados);
c) A porcentagem de mulheres com idade inferior a 18 e que se vacinaram (em relação à quantidade de mulheres pesquisadas);
d) A porcentagem de homens pesquisados (em relação ao total de pessoas pesquisadas).
e) Os nomes e demais dados de todos os pesquisados, ordenados alfabeticamente pelo nome.
*/
import javax.swing.JOptionPane;
public class Ex2 {
public static void main(String[] args){
Ex2Pessoa a[] = new Ex2Pessoa[2];
int quanHomemVacinados = 0;
int quanHomem = 0;
int quanMulher = 0;
int quanMuInf18Vacin = 0;
//Informamos valores
for (int i = 0; i < a.length; i++) {
a[i] = new Ex2Pessoa();
a[i].setNome(JOptionPane.showInputDialog("Digite nome"));
a[i].setIdade(Integer.parseInt(JOptionPane.showInputDialog("Digite edade")));
a[i].setSexo(Integer.parseInt(JOptionPane.showInputDialog("Digite sexo\n1.Mulher - 2.Homem")));
if (a[i].getSexo() == 2) {
quanHomem++;
}
if (a[i].getSexo() == 1) {
quanMulher++;
}
a[i].setVacinada(Integer.parseInt(JOptionPane.showInputDialog("Foi vacinado?\n1.Sim - 2.Não")));
//Calculamos homens vacinados
if (a[i].getSexo() == 2 & a[i].getVacinada()== 1) {
quanHomemVacinados++;
}
if (a[i].getSexo() == 1 & a[i].getIdade() < 18 & a[i].getVacinada() == 1) {
quanMuInf18Vacin++;
}
}
//Mostramos quantidade de mulheres pesquisadas
JOptionPane.showMessageDialog(null, "Quantidade de mulheres pesquisadas: "+ quanMulher);
//Mostramos porcentagem de homens que se vacinaram contra dengue
JOptionPane.showMessageDialog(null, "Porcentagem de homens que se vacinaram contra dengue: "+(quanHomemVacinados/quanHomem)*100);
//Mostramos porcentagem de mulheres com idade inferior a 18 e que se vacinaram
JOptionPane.showMessageDialog(null, "Porcentagem de mulheres < 18 vacinadas: "+(quanMuInf18Vacin/quanMulher)*100);
//A porcentagem de homens pesquisados
JOptionPane.showMessageDialog(null, "Porcentagem de homens pesquisados: "+(quanHomem/a.length)*100);
//Ordenamos os nomes de todas as pessoas pesquisadas alfabeticamente
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a.length; j++){
if(a[i].getNome().compareTo(a[j].getNome()) < 0){
Ex2Pessoa temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
String resultado = "";
for(int i = 0; i < a.length; i++){
resultado = resultado + a[i].getNome() + " - " + a[i].getIdade() + "\n\n";
}
JOptionPane.showMessageDialog(null, resultado);
}
}
0 comentarios:
Postar um comentário