1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como utilizar Collections.sort nessa situação

Bom dia, tenho a seguinte estrutura

Classe Lista

import java.util.ArrayList;
import java.util.List;

public class Lista {
    List<Funcionario> funcionario = new ArrayList<Funcionario>();
}

Classe Data

public class Data {
    private int dia;
    private int mes;
    private int ano;

    public String dataFormatada() {
        return "Data de entrada \nDia " + dia + " mês " + mes + " ano " + ano;
    }

    public void setDia(int dia) {
        this.dia = dia;

    }

    public void setMes(int mes) {
        this.mes = mes;

    }

    public void setAno(int ano) {
        this.ano = ano;
    }

}

Classe Funcionario

public class Funcionario {
    private double salario;
    private String cargo;
    private Data data = new Data();
    private String nome;

    Funcionario (String nome){
        this.nome = nome;
    }

    @Override
    public String toString() {
        return nome;

    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getSalario() {
        return salario;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }

    public String getCargo() {
        return cargo;
    }

    public void setCargo(String cargo) {
        this.cargo = cargo;
    }

    public void setData(int dia, int mes, int ano) {
        data.setDia(dia);
        data.setMes(mes);
        data.setAno(ano);

    }

    public String mostra() {
        return data.dataFormatada();
    }

}

Classe Empresa

public class Empresa {

    private Lista lista = new Lista();

    public Lista getLista(){
        return lista;
    }

    public void adicionaFuncionario(Funcionario funcionario) {
        lista.funcionario.add(funcionario);
        System.out
                .println("Funcionário " + funcionario + " Adicionado a lista de funcionários");
    }

    public void getFuncionarios() {
        System.out.println(lista.funcionario);
    }

}

Classe Testa Empresa

import java.util.Collections;

public class TestaEmpresa {
    public static void main(String[] args) {
        Empresa gesta = new Empresa();
        Funcionario f1 = new Funcionario("João");
        f1.setData(2, 1, 2014);
        gesta.adicionaFuncionario(f1);
        Funcionario f2 = new Funcionario("Leonardo");
        f2.setData(1, 8, 2009);
        gesta.adicionaFuncionario(f2);
        Funcionario f3 = new Funcionario("Pedro");
        f3.setData(02, 2, 2014);
        gesta.adicionaFuncionario(f3);
        Funcionario f4 = new Funcionario("Bruno");
        f4.setData(10, 6, 2014);
        gesta.adicionaFuncionario(f4);
        Funcionario f5 = new Funcionario("Arthur");
        f5.setData(01, 8, 2013);
        gesta.adicionaFuncionario(f5);
                ***Collections.sort(gesta.getLista().funcionario);***
        gesta.getFuncionarios();
        if (gesta.getLista().funcionario.size() < 5) {
            System.out.println("Empresa paga pouco tributo");
        } else {
            System.out.println("Empresa paga muito tributo");
        }

    }
}

Na classe com meu main queria dar um Sort na lista de funcionários da seguinte maneira

Collections.sort(gesta.getLista().funcionario);

mas é apresentado o seguinte

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Bound mismatch: The generic method sort(List<T>) of type Collections is not applicable for the arguments (List<Funcionario>). The inferred type Funcionario is not a valid substitute for the bounded parameter <T extends Comparable<? super T>>

Qual seria a forma correta de aplicar um sorte após a inserção de N funcionários na lista ?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java eclipse arraylist collections ou faça a sua própria pergunta.