A10

import java.util.Comparator;


public class RetazcePodlaDlzky implements Comparator<String> {

        private int pocetPorovnani = 0;

        @Override
        public int compare(String arg0, String arg1) {
                System.out.println(arg0 + " " + arg1);
                pocetPorovnani++;
                return arg0.length() - arg1.length();
        }

        public void resetujPocitadlo() {
                pocetPorovnani = 0;
        }

        public int getPocetPorovnani() {
                return pocetPorovnani;
        }

}
import java.util.Arrays;


public class Spustac {

        public static void main(String[] args) {
                String[] retazce = {"aaaa", "aa", "aaa"};
                RetazcePodlaDlzky c = new RetazcePodlaDlzky();
                c.resetujPocitadlo();
                Arrays.sort(retazce, c);
                System.out.println(c.getPocetPorovnani());
                System.out.println(Arrays.toString(retazce));
        }

}
package sk.upjs;

public class Bod {
        private double x;
        private double y;

        public Bod(double x, double y) {
                super();
                this.x = x;
                this.y = y;
        }

        public double getX() {
                return x;
        }

        public void setX(double x) {
                this.x = x;
        }

        public double getY() {
                return y;
        }

        public void setY(double y) {
                this.y = y;
        }
}
package sk.upjs;

import java.util.Comparator;

public class BodovyPorovnavac implements Comparator<Bod> {

        @Override
        public int compare(Bod o1, Bod o2) {
                int x = 0;
                int y = 0;

                double v1 = Math.sqrt((o1.getX()-x)*(o1.getX()-x)
                                            + (o1.getY()-y)*(o1.getY()-y));
                double v2 = Math.sqrt((o2.getX()-x)*(o2.getX()-x)
                                                + (o2.getY()-y)*(o2.getY()-y));

                if (v1 < v2) return -1;
                if (v1 == v2) return 0;
                return 1;
        }

}
package sk.upjs;

import sk.upjs.jpaz2.WinPane;

public interface Vykreslitelny {

        public void vykresliSa(WinPane plocha);

}
package sk.upjs;

import java.awt.Color;

import sk.upjs.jpaz2.Turtle;
import sk.upjs.jpaz2.WinPane;

public class Kruh implements Vykreslitelny {

        private double x;
        private double y;
        private double priemer;
        private Color farba;

        public Kruh(double x, double y, double priemer, Color farba) {
                super();
                this.x = x;
                this.y = y;
                this.priemer = priemer;
                this.farba = farba;
        }

        public double getX() {
                return x;
        }

        public void setX(double x) {
                this.x = x;
        }

        public double getY() {
                return y;
        }

        public void setY(double y) {
                this.y = y;
        }

        public double getPriemer() {
                return priemer;
        }

        public void setPriemer(double priemer) {
                this.priemer = priemer;
        }

        public Color getFarba() {
                return farba;
        }

        public void setFarba(Color farba) {
                this.farba = farba;
        }

        @Override
        public void vykresliSa(WinPane plocha) {
                Turtle kreslic = new Turtle();
                plocha.add(kreslic);
                kreslic.setFillColor(getFarba());
                kreslic.setPosition(getX(), getY());
                kreslic.dot(getPriemer()/2);
                plocha.remove(kreslic);
        }

}

Farebny Bod

package sk.upjs.test;

import java.awt.Color;
import java.awt.geom.Point2D;

public class FarebnyBod extends Point2D {
        private double x;
        private double y;
        private Color farba;

        @Override
        public double getX() {

                return x;
        }

        @Override
        public double getY() {
                // TODO Auto-generated method stub
                return y;
        }

        public Color getFarba() {
                return farba;
        }

        @Override
        public void setLocation(double arg0, double arg1) {
                this.x = arg0;
                this.y = arg1;

        }

        public FarebnyBod(double x, double y, Color farba) {
                this.x = x;
                this.y = y;
                this.farba = farba;
        }

        public FarebnyBod(double x, double y) {
                this.x = x;
                this.y = y;
                double cislo = Math.random();
                if (cislo < 1.0/3)
                        farba = Color.RED;
                else if (cislo > 2.0/ 3)
                        farba = Color.BLUE;
                else
                        farba = Color.green;

        }

        @Override
        public boolean equals(Object obj) {
                if (!(obj instanceof FarebnyBod))
                        return false;
                FarebnyBod bod = (FarebnyBod) obj;
                if (this.x != bod.getX())
                        return false;
                if (this.y != bod.getY())
                        return false;
                if (!this.farba.equals(bod.getFarba()))
                        return false;
                return true;
        }

        @Override
        public int hashCode() {
                return 0;
        }

        @Override
        public String toString() {
                return "[x=" + x + ", y=" + y + ", farba=" + farba + "]";
        }


}
package sk.upjs.test;

import java.util.Arrays;

import sk.upjs.jpaz2.Pane;
import sk.upjs.jpaz2.Turtle;

public class ZoznamBodov {

        private FarebnyBod[] body;

        public ZoznamBodov() {
                this.body = new FarebnyBod[0];
        }

        public void pridaj(FarebnyBod bod) {
                FarebnyBod[] nBody = new FarebnyBod[body.length + 1];
                System.arraycopy(body, 0, nBody, 0, body.length);
                nBody[nBody.length - 1] = bod;
                body = nBody;
        }

        public ZoznamBodov(double minX, double minY, double maxX, double maxY,
                        int pocet) {
                this();
                for (int i = 0; i < pocet; i++) {
                        double x = Math.random() * (maxX - minX) + minX;
                        double y = Math.random() * (maxY - minY) + minY;
                        FarebnyBod bod = new FarebnyBod(x, y);
                        this.pridaj(bod);
                }
        }

        public void vymaz(FarebnyBod fb){
                int idx = -1;
                FarebnyBod[] nbody= new FarebnyBod[body.length-1];
                for (int i = 0; i < body.length; i++) {
                        if(fb.equals(body[i])){
                                idx = i;
                                break;
                        }
                }
        System.arraycopy(body, 0, nbody, 0, idx);
        System.arraycopy(body, idx+1, nbody, idx, nbody.length-idx);
        body = nbody;
        }

        public void vykresli(Pane plocha){
                Turtle kreslic = new Turtle();
                plocha.add(kreslic);
                for (int i = 0; i < body.length; i++) {
                        kreslic.setPosition(body[i]);
                        kreslic.setFillColor(body[i].getFarba());
                        kreslic.dot(5);
                }
                plocha.remove(kreslic);
        }

        @Override
        public String toString() {
                return Arrays.toString(body);

        }
}
package sk.upjs.test;

import java.awt.Color;
import java.io.File;

import sk.upjs.jpaz2.WinPane;

public class Spustac {

        public static void main(String[] args) {
                ZoznamBodov z = new ZoznamBodov(0,0,300,300,10);
                System.out.println("Zoznam: " + z);
                WinPane plocha = new WinPane();
//              z.zotried();
//              System.out.println("Zotriedený zoznam: " + z);
                FarebnyBod fb1 = new FarebnyBod(140,140,Color.BLACK);
                FarebnyBod fb2 = new FarebnyBod(20,20);
                z.pridaj(fb1);
                z.pridaj(fb2);
                System.out.println("Zoznam po pridani: " + z);
//              z.pocty();
                z.vykresli(plocha);
                z.pridaj(fb1);
                z.vykresli(plocha);

//              z.najVStrede(plocha);
//              z.odstran(Color.RED);
//              System.out.println("Zoznam po odstraneni cervenych: " + z);
//              z.vymaz(z.najVStrede(plocha));
//              System.out.println("Zoznam po odstraneni bodu najviac v strede: " + z);
//              z.ulozBody(new File("fb.txt"));
//              ZoznamBodov z2 = new ZoznamBodov();
//              z2.nacitajBody(new File("fb.txt"));
//              System.out.println("Zoznam zo súboru: " + z2);
                }
}