LinkedList Min e Max

4 respostas
S

Alguém aí consegue me auxiliar de como consigo o menos e o maior valor de um linkedlist? Tenho a seguinte situação

public class A {

	public void setValor(int i)
		valor.add(i);
	...

	public int getValor()
	...

}

... static main(..) {

	LinkedList list = ...

	A a = new A();
	a.setValor(5);
	list.add(a)

	A b = new A();
	b.setValor(6);
	list.add(b);
	...

}

Bom a minha dúvida é como eu posso pegar o menor ou o maior valor add ao objeto A, já que necessariamente eu preciso adicionar um objeto na lista e nao o valor. Sei que Collections implementa max e min mas não estou conseguindo chegar em uma solução.

Alguem consegue me auxiliar???

4 Respostas

rmendes08

Você pode usar os métodos max e min da classe CollectionS. O detalhe é que a sua classe A precisa implementar Comparable ou então você deve fornecer um Comparator para o método.

rmendes08

Isso deveria estar no fórum de Java Básico, não no Off.

S

Certo, não percebi o pequeno detalhe de OFF :smiley:

Mas sobre o problema poderia me passar um exemplo?

rmendes08
class A implements Comparable{
  int valor;

  A( int v){
    this.valor = v;
  }

  public compareTo(A a){
    return this.valor ==  a.valor ? 0 : ( this.valor > a.valor ? 1 : -1 ) ;  
  }

  public static void main(){
     LinkedList<A> list = new LinkedList<A>();

     list.add( new A(1));
     list.add( new A(2));
     list.add( new A(3));
    
     Collections.max(list); //retorna A de valor 3
     Collections.min(list); //retorna A de valor 1
  }
}
Criado 6 de agosto de 2010
Ultima resposta 6 de ago. de 2010
Respostas 4
Participantes 2