Preciso ordenar em ordem crescente uma lista de funcionarios pela idade.
Minha Classe Funcionario:
import java.util.ArrayList;
import java.util.List;
public class Funcionario {
private List<Listagem> funcLista = new ArrayList<>();
public Funcionario(){
//vazio
}
public Funcionario(List<Listagem> funcLista){
this.funcLista=funcLista;
}
public void addFuncionario(String nome, int idade, String situacao){
Listagem listagem = new Listagem(nome, idade, situacao);
funcLista.add(listagem);
}
public void addLivro(Listagem listagem){
funcLista.add(listagem);
}
public void consultaFunc(String nome){
for(int i = 0; i< funcLista.size(); i++){
if(funcLista.get(i).getNome().equalsIgnoreCase(nome)){
System.out.println("Nome: "+funcLista.get(i).getNome());
System.out.println("Idade: "+funcLista.get(i).getIdade());
System.out.println("Situacao: "+funcLista.get(i).getSituacao());
}
}
}
public void consulta(Listagem listagem){
funcLista.get(0);
}
public void listaFunc(){
for(int i = 0; i< funcLista.size(); i++){
System.out.println("Nome: "+funcLista.get(i).getNome());
System.out.println("Idade: "+funcLista.get(i).getIdade());
System.out.println("Situacao: "+funcLista.get(i).getSituacao());
}
}
public void listaFuncAtivo(){
for(int i = 0; i< funcLista.size(); i++){
if(funcLista.get(i).getSituacao().equalsIgnoreCase("ativo")){
System.out.println("Nome: "+funcLista.get(i).getNome());
System.out.println("Idade: "+funcLista.get(i).getIdade());
System.out.println("Situacao: "+funcLista.get(i).getSituacao());
}
}
}
public void idadeCrescent(){
for(int i = 0; i< funcLista.size(); i++){
if(funcLista.get(i).getIdade()>i){
System.out.println("Nome: "+funcLista.get(i).getNome());
System.out.println("Idade: "+funcLista.get(i).getIdade());
System.out.println("Situacao: "+funcLista.get(i).getSituacao());
}
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------
**_Minha Classe Listagem:_**
public class Listagem {
private String nome;
private int idade;
private String situacao;
public Listagem(){
//vazio
}
public Listagem(String nome, int idade, String situacao){
this.nome=nome;
this.idade=idade;
this.situacao=situacao;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setIdade(int idade) {
this.idade = idade;
}
public void setSituacao(String situacao) {
this.situacao = situacao;
}
public String getNome() {
return nome.toUpperCase();
}
public int getIdade() {
return idade;
}
public String getSituacao() {
return situacao.toUpperCase();
}
}
-----------------------------------------------------------------------------------------------------------------------------------
_**Minha Parte Principal:**_
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
Funcionario funcionario = new Funcionario();
String nome, situacao;
int opcao, idade;
System.out.println("***Cadastro de Funcionarios***");
do{
System.out.printf("\n\tMenu\n\n");
System.out.printf("1: Cadastrar Fucionario\n2: Consulta Funcionario\n3: Lista Funcionarios\n4: Funcionarios Ativos\n5: Funcionarios Pela Idade\n0: Sair\n");
opcao=entrada.nextInt();
if(opcao==1){
System.out.println("\n\tCadastro de Funcionario\n");
System.out.println("Nome do Funcionario: ");
try{
nome=entrada.next();
System.out.println("Idade do Funcionario: ");
idade=entrada.nextInt();
System.out.println("Situacao do Funcionario: ");
situacao=entrada.next();
funcionario.addFuncionario(nome, idade, situacao);
}catch(Exception e){
System.out.println("Algo errado nao esta certo!");
}
}
if(opcao==2){
System.out.println("\n\tConsulta Funcionario\n");
System.out.println("Nome do Funcionario: ");
try{
nome=entrada.next();
funcionario.consultaFunc(nome);
}catch(Exception e){
System.out.println("Algo errado nao esta certo!");
}
}
if(opcao==3){
System.out.println("\n\tLista Funcionario\n");
funcionario.listaFunc();
}
if(opcao==4){
System.out.println("\n\tFuncionario Ativo\n");
funcionario.listaFuncAtivo();
}
if(opcao==5){
System.out.println("\n\tLista de Funcionario Pela Idade\n");
funcionario.idadeCrescent();
}
if(opcao==0){
System.out.printf("\nAte logo!");
}
if(opcao<0 || opcao>=6){
System.out.println("Opção Invalida!");
}
}while(opcao!=0);
entrada.close();
}
}
Esta tudo funcionando como preciso, não é grande coisa, o que não esta funcionando é a parte do "public void idadeCrescente()…
ele mostra como uma lista, não esta ordenando.
Já tentei varias coisas, mas sou iniciante, então se alguém souber e puder me ajudar agradeço muito!!