0
class Datum {
public final Integer dan;
public final Integer mesec;
public final Integer godina;
public Datum(String datum) {
String[] komponente = datum.split("\\.");
dan = Integer.valueOf(komponente[0]);
mesec = Integer.valueOf(komponente[1]);
godina = Integer.valueOf(komponente[2]);
}
@Override
public String toString() {
return dan + "." + mesec + "." + godina + ".";
}
}
public class DomaciZadatakZaMozganje1 {
public static void main(String[] args) {
Datum[] datumi = new Datum[] {
new Datum("11.4.2015."),
new Datum("12.5.2013."),
new Datum("21.5.2015."),
new Datum("11.4.2014."),
new Datum("14.4.2015."),
new Datum("14.4.2014."),
new Datum("21.4.2015."),
new Datum("12.5.2014."),
new Datum("11.4.2013."),
new Datum("12.5.2015."),
new Datum("14.4.2013."),
new Datum("16.5.2015.")
};
Svetovid.out.println("Unsorted :");
for (Datum datum : datumi) {
Svetovid.out.println(datum);
}
Arrays.sort(datumi, new KomparatorDatuma());
Svetovid.out.println("Sorted: ");
for (Datum datum : datumi) {
Svetovid.out.println(datum);
}
}
}
class KomparatorDatuma implements Comparator<Datum> {
private Comparator<Integer> komparator = new ObrnutiKomparatorBrojeva();
@Override
public int compare(Datum datum1, Datum datum2) {
int rezultat = komparator.compare(datum1.godina, datum2.godina);
if (rezultat == 0)
rezultat = komparator.compare(datum1.mesec, datum2.mesec);
if (rezultat == 0)
rezultat = komparator.compare(datum1.dan, datum2.dan);
return rezultat;
}
}
class ObrnutiKomparatorBrojeva implements Comparator<Integer> {
@Override
public int compare(Integer int1, Integer int2) {
if (int1 == int2) {
return 0;
} else if (int1 < int2) {
return 1;
} else {
return -1;
}
}
}
結果是:日期排序修復?這種
14.4.2013. 11.4.2013. 12.5.2013. 12.5.2014. 14.4.2014. 11.4.2014. 16.5.2015. 12.5.2015. 21.4.2015. 14.4.2015. 21.5.2015. 11.4.2015.
爲什麼這不起作用?
嗯,你應該可以在這裏發佈的代碼 - 發生了什麼事時,你試過嗎?請注意,您的ObrnutiKomparatorBrojeva類是不必要的 - KomparatorDatuma.compare只能使用Integer.compare。 –
另請注意,對於講英語的用戶來說,使用英文名稱(年,月等)的代碼示例會更具可讀性 –
此外,這不是我得到的結果 - 使用您發佈的代碼(更改使用'System.out.println')它對我來說工作正常,顯示最新的結果。 –