Drag and Drop [RESOLVIDO]

a imagem nao quer carregar =/… vou copiar e colar o cod aqui…

[code]package ultils;

import java.util.ArrayList;
import java.util.Collections;

public class MyInt __________ __________ {

public static void main(String[] args) {	
	
	ArrayList<MyInt> list =  new ArrayList<MyInt>();
	
	list.add(new MyInt(2));
	list.add(new MyInt(1));
	
	Collections.sort(list);
	System.out.println(list);
}
	
private int i;

public MyInt(int i){ this.i = i;}

public String toString(){
	return Integer.toString(i);
}


__________ int __________ {
	
	MyInt i2 = (MyInt)o;
	
	return __________
}

Code:

implements
extends
Sortable
Object
Comparable
protected
public
i - i2.i
i2.i - i
i
compare(MyInt o, MyInt i2)
comapre(Object o, Object i2)
sort(Object o)
sort(MyInt o)
compareTo(MyInt o)
compareTo(Object o)

}
[/code]

Bom ficaria:

o retorno ficará i - i2.i?

Isso mesmo.

Vlw Vini. Se no return eu colocasse i2.i - i, funcionaria tb né, ia ocorrer uma comparaçao na ordem inversa é isso mesmo?

Sim.

bom … eu sei que esse topco já morreu Vinny
mais o compareTO mais correto não seria esse: compareTo(MyInt o) ??

[quote=Gustavo Santos]bom … eu sei que esse topco já morreu Vinny
mais o compareTO mais correto não seria esse: compareTo(MyInt o) ??[/quote]

Então, mas devido ao exercicio veja só:

[code] __________ int __________ {

    MyInt i2 = (MyInt)o;   
       
    return __________   
}   

[/code]

Como ali ta sendo feito o casting, logo o argumento do compareTo, não seria um MyInt.

boa !!! hehe

e quanto a estes códigos aqui tanto faz correto ?!

i - i2.i

i2.i - i

[quote=Gustavo Santos]e quanto a estes códigos aqui tanto faz correto ?!

i - i2.i

i2.i - i [/quote]

Sim, isso ai so vai mudar a ordem da comparação.

[quote=Gustavo Santos]bom … eu sei que esse topco já morreu Vinny
mais o compareTO mais correto não seria esse: compareTo(MyInt o) ??[/quote]

Só se ele implementasse Comparable

Mas ele está implementando só Comparable.

Blz, eu só não entendi o seguinte:

ele cria os dois objetos:

list.add(new MyInt(2));
list.add(new MyInt(1));

Quando ele chamar

Collections.sort(list);

sort(List) vai chamar compareTo(Object o), daí faço o quest e tals ok !!
quando ele vai retornar é que não entendo. Tipo o que é feito ?

Ele pega o valor de i do primeiro objeto, que é 2 - i == 0 ok ?!
Para o segundo objeto 1 - 1 == 0 ?

Tipo como ele faz a comparação, não estou entendo só isso !

[quote=Gustavo Santos]Blz, eu só não entendi o seguinte:

ele cria os dois objetos:

list.add(new MyInt(2));
list.add(new MyInt(1));

Quando ele chamar

Collections.sort(list);

sort(List) vai chamar compareTo(Object o), daí faço o quest e tals ok !!
quando ele vai retornar é que não entendo. Tipo o que é feito ?

Ele pega o valor de i do primeiro objeto, que é 2 - i == 0 ok ?!
Para o segundo objeto 1 - 1 == 0 ?

Tipo como ele faz a comparação, não estou entendo só isso !
[/quote]

Esses retornos estao sendo feitos das seguintes formas:

Agora se invertermos

Dei uma editada na resposta la :slight_smile:

Show Evertom !!!

Muito boa explicação !!!