From 899cd397913dab9af8fa31a145fb7145ec383453 Mon Sep 17 00:00:00 2001 From: 111 <0@yandex.ru> Date: Tue, 6 Dec 2022 16:10:08 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5:=20=D1=81=D0=BE=D1=80=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BF=D0=BE=20=D0=98=D0=BD?= =?UTF-8?q?=D1=82=D0=B5=D1=80=D0=94=D0=BE=D0=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ArmoredCarCompareByType.java | 2 ++ src/main/java/DrawingCaterpillar.java | 14 +++++++++++++- src/main/java/DrawingCrossCaterpillar.java | 12 ++++++++++++ src/main/java/DrawingDoubleCaterpillar.java | 12 ++++++++++++ src/main/java/IDrawingCaterpillar.java | 2 +- 5 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/main/java/ArmoredCarCompareByType.java b/src/main/java/ArmoredCarCompareByType.java index 0386396..a996342 100644 --- a/src/main/java/ArmoredCarCompareByType.java +++ b/src/main/java/ArmoredCarCompareByType.java @@ -37,6 +37,8 @@ public class ArmoredCarCompareByType implements Comparator { } return 1; } + if (xCar.getArmoredCar().drawingCaterpillar.compareTo(yCar.getArmoredCar().drawingCaterpillar) != 0) + return xCar.getArmoredCar().drawingCaterpillar.compareTo(yCar.getArmoredCar().drawingCaterpillar); var speedCompare = Integer.compare(xCar.getArmoredCar().getArmoredCar().getSpeed(), yCar.getArmoredCar().getArmoredCar().getSpeed()); if (speedCompare != 0) { diff --git a/src/main/java/DrawingCaterpillar.java b/src/main/java/DrawingCaterpillar.java index 2785b4e..fb3484b 100644 --- a/src/main/java/DrawingCaterpillar.java +++ b/src/main/java/DrawingCaterpillar.java @@ -1,6 +1,7 @@ import java.awt.*; +import java.util.HashMap; -public class DrawingCaterpillar implements IDrawingCaterpillar { +public class DrawingCaterpillar implements IDrawingCaterpillar, Comparable { private NumRinks numRinks = NumRinks.Four; private Color color; @@ -48,4 +49,15 @@ public class DrawingCaterpillar implements IDrawingCaterpillar { public NumRinks getNumRinks() { return numRinks; } + + @Override + public int compareTo(Object o) { + if (!(o instanceof IDrawingCaterpillar)) + return -1; + HashMap dict = new HashMap<>(); + dict.put(DrawingCaterpillar.class.getName(), 0); + dict.put(DrawingDoubleCaterpillar.class.getName(), 1); + dict.put(DrawingCrossCaterpillar.class.getName(), 2); + return Integer.compare(dict.get(this.getClass().getName()), dict.get(o.getClass().getName())); + } } diff --git a/src/main/java/DrawingCrossCaterpillar.java b/src/main/java/DrawingCrossCaterpillar.java index 3796747..7ee2ed0 100644 --- a/src/main/java/DrawingCrossCaterpillar.java +++ b/src/main/java/DrawingCrossCaterpillar.java @@ -1,4 +1,5 @@ import java.awt.*; +import java.util.HashMap; public class DrawingCrossCaterpillar implements IDrawingCaterpillar{ private NumRinks numRinks = NumRinks.Four; @@ -54,4 +55,15 @@ public class DrawingCrossCaterpillar implements IDrawingCaterpillar{ public NumRinks getNumRinks() { return numRinks; } + + @Override + public int compareTo(Object o) { + if (!(o instanceof IDrawingCaterpillar)) + return -1; + HashMap dict = new HashMap<>(); + dict.put(DrawingCaterpillar.class.getName(), 0); + dict.put(DrawingDoubleCaterpillar.class.getName(), 1); + dict.put(DrawingCrossCaterpillar.class.getName(), 2); + return Integer.compare(dict.get(this.getClass().getName()), dict.get(o.getClass().getName())); + } } diff --git a/src/main/java/DrawingDoubleCaterpillar.java b/src/main/java/DrawingDoubleCaterpillar.java index e6c8a78..1a7bc52 100644 --- a/src/main/java/DrawingDoubleCaterpillar.java +++ b/src/main/java/DrawingDoubleCaterpillar.java @@ -1,4 +1,5 @@ import java.awt.*; +import java.util.HashMap; public class DrawingDoubleCaterpillar implements IDrawingCaterpillar{ private NumRinks numRinks = NumRinks.Four; @@ -51,4 +52,15 @@ public class DrawingDoubleCaterpillar implements IDrawingCaterpillar{ public NumRinks getNumRinks() { return numRinks; } + + @Override + public int compareTo(Object o) { + if (!(o instanceof IDrawingCaterpillar)) + return -1; + HashMap dict = new HashMap<>(); + dict.put(DrawingCaterpillar.class.getName(), 0); + dict.put(DrawingDoubleCaterpillar.class.getName(), 1); + dict.put(DrawingCrossCaterpillar.class.getName(), 2); + return Integer.compare(dict.get(this.getClass().getName()), dict.get(o.getClass().getName())); + } } diff --git a/src/main/java/IDrawingCaterpillar.java b/src/main/java/IDrawingCaterpillar.java index 6a35aec..0d35365 100644 --- a/src/main/java/IDrawingCaterpillar.java +++ b/src/main/java/IDrawingCaterpillar.java @@ -1,6 +1,6 @@ import java.awt.*; -public interface IDrawingCaterpillar { +public interface IDrawingCaterpillar extends Comparable{ void setNumRinks(int n); void DrawCaterpillar(Graphics2D g2d, int startPosX, int startPosY);