X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=spa2-materijali.git;a=blobdiff_plain;f=PretrazivanjeSaVracanjem%2FLavirint%2FObjedinjenoResenje%2FResenje.java;h=ffb2622692d8a7ebe91b7eac5661e8accc9ebaeb;hp=5732427a158e1dfdd9afcd2de5a6b12ea6c6eb26;hb=3c24990b2b5db35d728a4a706ba4963d3c936a76;hpb=e9a069bea132ac74682a92ba56dad7f813992032 diff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java index 5732427..ffb2622 100644 --- a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java +++ b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java @@ -11,14 +11,26 @@ import java.util.ArrayList; import java.util.List; import java.util.Collections; -public class Resenje implements Cloneable { +public class Resenje { private ArrayList polja; private List nepromenljivaListaPolja; - Resenje() { + public Resenje() { polja = new ArrayList(); nepromenljivaListaPolja = Collections.unmodifiableList(polja); } + + /** + Pravi novo resenje sa istim sadrzajem kao original + */ + public Resenje(Resenje original) { + // pozovemo "podrazumevani" konstruktor + this(); + // iskopiramo sva polja iz originala + for (Polje p : original.getPolja()) { + dodaj(p.getX(), p.getY(), p.getV()); + } + } // Dodaje pulje u resenje public void dodaj(int x, int y, int v) { @@ -40,6 +52,20 @@ public class Resenje implements Cloneable { for (int i = 0; i < getLength(); i++) System.out.println(polja.get(i)); } + + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("Resenje: [ "); + if (getLength()>0) { + sb.append(polja.get(0)); + for (int i = 1; i < getLength(); i++) { + sb.append(", " + polja.get(i)); + } + } + sb.append(" ]"); + + return sb.toString(); + } // Vraca duzinu resenja public int getLength() { @@ -58,9 +84,8 @@ public class Resenje implements Cloneable { return nepromenljivaListaPolja; } - // Kreira klon od resenja - @Override - public Resenje clone() { + // Kreira nezavisnu kopiju ovog resenja + public Resenje kopija() { Resenje rez = new Resenje(); for (Polje p : polja) { rez.dodaj(p.getX(), p.getY(), p.getV());