gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under
the git version control system
1 import java
.util
.Arrays
;
2 import java
.util
.Comparator
;
6 * Domaci zadatak za mozganje #1
8 * a) Zasto ovaj program ne sortira niz datuma kako se ocekuje?
9 * b) Kako popraviti program?
15 public final Integer dan
;
16 public final Integer mesec
;
17 public final Integer godina
;
19 public Datum(String datum
) {
21 // Razdvojimo string oko tacaka
22 String
[] komponente
= datum
.split("\\.");
24 // Konvertujemo stringove u brojeve
25 dan
= Integer
.valueOf(komponente
[0]);
26 mesec
= Integer
.valueOf(komponente
[1]);
27 godina
= Integer
.valueOf(komponente
[2]);
32 public String
toString() {
33 return dan
+ "." + mesec
+ "." + godina
+ ".";
37 public class DomaciZadatakZaMozganje1
{
39 public static void main(String
[] args
) {
41 // Kreiramo niz datuma
42 Datum
[] datumi
= new Datum
[] {
43 new Datum("11.4.2015."),
44 new Datum("12.5.2013."),
45 new Datum("21.5.2015."),
46 new Datum("11.4.2014."),
47 new Datum("14.4.2015."),
48 new Datum("14.4.2014."),
49 new Datum("21.4.2015."),
50 new Datum("12.5.2014."),
51 new Datum("11.4.2013."),
52 new Datum("12.5.2015."),
53 new Datum("14.4.2013."),
54 new Datum("16.5.2015.")
58 Svetovid
.out
.println("Originalni niz:");
59 for (Datum datum
: datumi
) {
60 Svetovid
.out
.println(datum
);
64 Arrays
.sort(datumi
, new KomparatorDatuma());
66 // Ponovo odstampamo niz
67 Svetovid
.out
.println("Sortirani niz:");
68 for (Datum datum
: datumi
) {
69 Svetovid
.out
.println(datum
);
75 class KomparatorDatuma
implements Comparator
<Datum
> {
77 private Comparator
<Integer
> komparator
= new ObrnutiKomparatorBrojeva();
80 public int compare(Datum datum1
, Datum datum2
) {
82 // Prvo poredimo godine
83 int rezultat
= komparator
.compare(datum1
.godina
, datum2
.godina
);
85 // Ako su godine jednake, poredimo mesece
87 rezultat
= komparator
.compare(datum1
.mesec
, datum2
.mesec
);
90 // Ako su i meseci jednaki poredimo dane
92 rezultat
= komparator
.compare(datum1
.dan
, datum2
.dan
);
95 // Vratimo rezultat poredjenja
101 class ObrnutiKomparatorBrojeva
implements Comparator
<Integer
> {
104 public int compare(Integer int1
, Integer int2
) {
107 } else if (int1
< int2
) {
Svarog.pmf.uns.ac.rs/gitweb
maintanance
Doni Pracner