CompareTO

6 respostas
S

Olá, tenho uma linkedlist e nesta é armazenado objetos A. Preciso comparar e achar o menor e o maior valor de um dado atributo dos objetos A armazenados nessa lista. Alguem teria alguma ideia de como posso fazer isso.

....
static LinkedList<Tarefa> listvalor = new LinkedList<Tarefa>();
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		for (int i=0; i<10; i++) {
			Tarefa n = new Tareafa();
			n.setId(i+1);
			n.setTamanho(i*4);
			listvalor.add(n);
		}
....

Eu preciso saber qual o maior e menor Tamanho.

6 Respostas

ViniGodoy

Só percorrendo a lista:

wiltonor

Segue um exemplo:

public class Tarefa implements Comparable<Tarefa>{

	private int id;
	private String nome;

	public int compareTo(Tarefa t){
		
		return nome.compareTo(t.getNome());

	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

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

	      
}
S

Se falando em busca o que seria mais rápido, LinkedHashMap, TreeMap ou LinkedList

ViniGodoy

Se você for buscar pela chave, tanto faz. Todas são extremamente velozes.
O HashMap tem o tempo de busca mais estável, mas nem sempre é possível obter um algoritmo de hash tão bom e confiável, o que irá prejudicar sua performance.
O TreeMap tem um tempo de busca que aumenta em proporção logarítmica (ou seja, quase nada).
Para a busca, um LinkedHashMap é idêntico a um HashMap.

Na prática, você pode considerar a busca pela chave em maps como sendo instantânea.

S

Você comentou no post que recomendou, que a TreeMap teria funções especificas para achar um min e max… nao estou achando. teria um exemplo?

ViniGodoy

Sim, são os método firstKey() e lastKey(). Mas conforme já observei, o TreeMap é ordenado pelas chaves, e não pelos valores.

Criado 13 de fevereiro de 2011
Ultima resposta 13 de fev. de 2011
Respostas 6
Participantes 3