Min e Max LinkedhasMap

Olá, alguem sabe como posso achar o menor VALOR em uma LinkedHashMap? listMap<ID,VALOR>

Ou em uma linkedlist pode ser também, mas nesta lista armazeno um objeto:

Class A {

public void setId(int id) ...

public void getId() ....

}

A a = new A();

... list.add(a);

}

Quero pegar o menor e o maior id armazanado nesta lista.

Faça um for na lista.

[code]int menor = Integer.MAX_INTEGER;

for (A a : list) {
if (menor < a.getId()) {
menor = lista.get(i);
}
}
return menor;
[/code]

Se precisar de elementos naturalmente ordenados, sem repetição de ID, use um TreeMap ou um TreeSet. Aí vc terá métodos que retornam esses valores de maneira instantânea.

Esse metodo que voce sugeriu nao esta funcionando com linkedhashmap.

Impossível, poste seu código.

Não é necessario :D, o erro esta no list.get(i), variavel i nao declarada. Nao consigo entender esse for each. E esse exemplo é só com linkedlist, como estou utulizando linkedhashmap é necessario keyset, eu acho :smiley:

No for each, isso:

for (int i = 0; i < list.size(); i++) { A a = list.get(i); //Faz qualquer coisa }
É equivalente a isto:

for (A a : list) { //Faz qualquer coisa }

Lê-se "para cada objeto A na lista…"

Sou novato em java entao tenho duvidas quanto a utilização de algumas funções, pesquisando na internet achei a seguinte função

....
	int workload;
	String id;
	
	public int compareTo(Job o) {
		// TODO Auto-generated method stub
		return this.workload ==  o.workload ? 0 : ( this.workload > o.workload ? 1 : -1 ) ;
	}
.....

Poderia me explicar o que seria o que esta dentro da função compareTo

A regra do compareTo diz que:

  1. Você deve retornar < 0 se seu objeto for menor que o recebido por parâmetro;
  2. Você deve retornar 0 se os dois objetos forem iguais;
  3. Você deve retornar > 0 se o seu objeto for maior que o recebido por parâmetro.

É o que esse método faz.

O operador ternário funciona como uma espécie de if. Isso aqui:

String texto = x > 10 ? "Maior" : "Menor"; System.out.println(texto);

É o mesmo que:

String texto; if (x > 10) { texto = "Maior"; } else { texto = "Menor"; } System.out.println(texto);

Portanto, vê-se claramente que esse método retorna a comparação de acordo com a carga (workload) do Job.
É através desse comparador que classes como TreeSet e TreeMap ordenam os dados. Para mais informações leia: