Manter um Historico de informações

Olá, estou tendo dificuldade em como criar para que a minha classe Chefe mantenha um historico do status que o empregado envia para ele. Este chefe deve manter o historico atual e anterior que ele recebeu do empregado. Exemplificando:
TAM Tempo
5 434
3 454

Eu havia pensado em colcoar em uma lista estas informações e o mais atual colocar em primeiro com um addFirst, talvez, mas eu nao sei como fazer isso. E se no caso eu tiver mais uma informação neste Status(TAM, TEMPO, CAPACIDADE) como fazer? Alguem pode me auxliar … OBRIGADO

public class Chefe {

	...

	public Chefe() {
		LinkedList l = new LinkedList();

	}

	public status(int tam, long dateAtual) {
		this.tam = tam;
		this.dateAtual = dateAtual;
	}			
}

public class Empregado extend Thread {

	BlockingQueue<Integer> trabalho;

	public Empregado (Chefe chefe) {
		this.trabalho = new LinkedBlockingQueue<Integer>();
		this.chefe = chefe;
	}

	public void run() {
		int i = this.trablaho.take();
		....
		this.chefe.status(this.trabalho.size(), System.currentTimeMillis());
		...
	}
}

Olá, estou tendo dificuldade em como criar para que a minha classe Chefe mantenha um historico do status que o empregado envia para ele. Este chefe deve manter o historico atual e anterior que ele recebeu do empregado. Exemplificando:
TAM Tempo
5 434
3 454

Eu havia pensado em colcoar em uma lista estas informações e o mais atual colocar em primeiro com um addFirst, talvez, mas eu nao sei como fazer isso. E se no caso eu tiver mais uma informação neste Status(TAM, TEMPO, CAPACIDADE) como fazer? Alguem pode me auxliar … OBRIGADO

E aí, spiderman!
Você pode fazer algo do tipo (vê se eu entendi o que você quer):

  1. Você cria uma classe que será o funcionário.

[code]public class Funcionario {

private String nome;
private String cargaHoraria;

// getters e setters omitidos.
}[/code]
2. Você cria uma classe que será o status.

[code]public class Status {

private int tamanho;
private DateTime horarioAdicao;
private int capacidade;

// getters e setters omitidos.
}[/code]
3. Você cria uma classe que armazena determinado status de determinado funcionário.

[code]public class StatusFuncionario {

private Funcionario funcionario;
private Status status;

// getters e setters omitidos.
}[/code]
4. E aí cria uma classe que é o chefe que armazena os status de seus funcionários.

[code]public class Chefe{

private String nome;
private List statusFuncionarios;

public void adicionarStatusFuncionario(StatusFuncionario statusFuncionario) {

   statusFuncionarios.add(statusFuncionario);

}
// getters e setters omitidos.
}[/code]

  1. A cada alteração dos status dos funcionários, você adiciona na lista.
chefe.adicionarStatusFuncionario( /*seu objeto que contém o status do funcionário. */ );
  1. Como o status mais atual é o último adicionado, você pode recuperar os status com um método assim:
public Status recuperarStatusAtual(List<StatusFuncionario> statusFuncionarios) {

    Collections.reverse(statusFuncionario);
    Iterator<StatusFuncionario> iteratorStatus =  statusFuncionario.iterator();
    return iteratorStatus.next();
}

//ou

public Status recuperarStatusAtual(List<StatusFuncionario> statusFuncionarios) {

    Iterator<StatusFuncionario> iteratorStatus =  statusFuncionario.iterator();
    StatusFuncionario statusFuncionario = new StatusFuncionario();

    while (iteratorStatus.hasNext()) {
        statusFuncionario = iteratorStatus.next();
    }
    return statusFuncionario;
}

Daí você adapta no seu código… Que acha?

Hibernate Envers lhe ajudaria?