C10

import java.util.Comparator;

public class PodlaDlzky implements Comparator<String> {

         private int pocet =0;
        @Override
        public int compare(String o1, String o2) {
                System.out.println(o1 + "," + o2);
                pocet++;
                if (o1.length() != o2.length()) {

                        return o1.length() - o2.length();

                } else {

                        return o1.compareTo(o2);

                }

        }
        public void resetPocitadlo(){
                pocet=0;
        }
        public int getPocetPorovnani(){
                return pocet;
        }
}
import java.lang.reflect.Array;
import java.util.Arrays;


public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {


                String [] pole = {"ahoj","stolicka","uvodzovky","h","d","akoj"};
                System.out.println(Arrays.toString(pole));
                Arrays.sort(pole);
                //System.out.println(Arrays.toString(pole));
                PodlaDlzky a = new PodlaDlzky();
                Arrays.sort(pole, a);
                System.out.println(Arrays.toString(pole));
                System.out.println(a.getPocetPorovnani());

        }

}

package sk.upjs.test;

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

public class FarebnyBod extends Point2D implements Comparable<FarebnyBod>{

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

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

        public FarebnyBod(double x, double y) {
                super();
                this.x = x;
                this.y = y;
                int a = (int) (Math.random() * 3);
                if (a == 0) {
                        this.farba = Color.blue;
                } else {
                        if (a == 1) {
                                this.farba = Color.red;
                        } else {
                                this.farba = Color.green;
                        }
                }
        }

        public String toString() {
                return "[" + getX() + ", " + getY() + ", " + getFarba() + "]";
        }

        public boolean equals(FarebnyBod b) {
                if ((b.getX() == this.getX()) && (b.getY() == this.getY())
                                && (b.getFarba().equals(this.getFarba()))) {
                        return true;
                }
                return false;
        }

        public Color getFarba() {
                return farba;
        }

        public void setFarba(Color farba) {
                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;
        }

        @Override
        public void setLocation(double arg0, double arg1) {
                // TODO Auto-generated method stub

        }

        @Override
        public int compareTo(FarebnyBod o) {
                return  o.getFarba().getRGB() - this.farba.getRGB() ;

        }

}
package sk.upjs.test;

import java.util.Arrays;

public class ZoznamBodov {
        private FarebnyBod[] pole;

        public ZoznamBodov(double minX, double minY, double maxX, double maxY,int pocet) {
        this.pole = new FarebnyBod[pocet];

        for (int i=0;i<pole.length;i++){
                double xko = Math.random()*( maxX-minX) + minX;
                double yko = Math.random()*( maxY-minY) + minY;
                pole[i]= new FarebnyBod(xko,yko );


        }

        }

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

        }

        public ZoznamBodov(ZoznamBodov zoznam) {
                this.pole = new FarebnyBod[zoznam.pocetBodov()];
                for (int i = 0; i < pole.length; i++) {
                        FarebnyBod bod = new FarebnyBod(zoznam.getFarebnyBod(i).getX(), zoznam.getFarebnyBod(i).getY(), zoznam.getFarebnyBod(i).getFarba());
                        pole[i] = bod;
                }
        }

        public int pocetBodov() {
                return pole.length;
        }

        public FarebnyBod getFarebnyBod(int index) {
                return pole[index];
        }

        public void pridaj(FarebnyBod f) {
                FarebnyBod[] pomocne = new FarebnyBod[pole.length+1];
                System.arraycopy(pole, 0, pomocne, 0, pole.length);
                pomocne[pomocne.length-1] = f;
                pole = pomocne;
        }



        public String toString() {
                return Arrays.toString(pole);
        }






}
package sk.upjs.test;

import java.awt.Color;

public class Spustac {

        public static void main(String[] args) {

                ZoznamBodov zb = new ZoznamBodov(-5, -3, 5, 3, 2);

                System.out.println(zb.toString());

                zb.pridaj(new FarebnyBod(3, 1, Color.BLUE));

                System.out.println(zb.toString());

        }

}