
Originariamente inviata da
francesco51
Allora l'esercizio mi chiede:
Creare una classe WrapperComparable che abbia le seguenti caratteristiche:
abbia come costante incapsulata di tipo Integer che deve essere sempre
valorizzata;
abbia un metodo toString() che restituisca l’intero;
definisca un modo di ordinamento che vada dall’intero incapsulato più alto
al più basso.
Infine si crei una classe che verifichi il corretto funzionamento dell’ordinamento.
Soluzione:
codice:
public class WrapperComparable implements Comparable<WrapperComparable> {
private Integer integer;
public WrapperComparable(Integer integer) {
if (integer == null) {
integer = 0;
}
this.integer = integer;
}
public Integer getInteger() {
return integer;
}
public void setInteger(Integer integer) {
this.integer = integer;
}
@Override
public int compareTo(WrapperComparable otherWrapperComparable) {
return -(integer.compareTo(otherWrapperComparable.getInteger()));
}
@Override
public String toString(){
return "WrapperComparable("+integer+ ")";
}
}
e poi classe per il test:
codice:
import java.util.Arrays;
public class TestWrapperComparable {
public static void main(String args[]) {
WrapperComparable[] array = {new WrapperComparable(1942),
new WrapperComparable(1974),
new WrapperComparable(1907)};
Arrays.sort(array);
for (WrapperComparable wrapperComparable : array) {
System.out.println(wrapperComparable);
}
}
}
mi è tutto chiaro tranne una voce e vorrei capire quale è la sua funzione.
La parte che non mi è chiara stà nella classe WrapperComparator ed è :
codice:
@Override
public int compareTo(WrapperComparable otherWrapperComparable) { /Che vuol dire?
return -(integer.compareTo(otherWrapperComparable.getInteger()));
}
@Override
public String toString() {
return "WrapperComparable("+integer+ ")";
}
}
grazie a tutti.
