X-Git-Url: https://git.piment-noir.org/?p=TP_POO.git;a=blobdiff_plain;f=TP2%2FImage.java;h=da903147207c2c4c4c9210bbe6699f0c4c36c052;hp=37bc6c3fc4d6b724c94db174b78f3e3bd79a8670;hb=1ace87363eeb14dfad101401fa0fbf1dfb5c5105;hpb=0f1b20188428cc8f90cb68ec4775f0b67be0c077 diff --git a/TP2/Image.java b/TP2/Image.java index 37bc6c3..da90314 100644 --- a/TP2/Image.java +++ b/TP2/Image.java @@ -1,5 +1,5 @@ -class Image extends Forme implements Compactable { +class Image extends Forme implements Compactable, Comparable { final int IMAGE_MAX_SIZE = 100; Forme[] formeCollection; int formeNumber; @@ -16,6 +16,10 @@ class Image extends Forme implements Compactable { formeNumber = 0; } + public int getSize() { + return formeNumber; + } + private boolean isEmpty() { return (formeNumber == 0); } @@ -67,10 +71,21 @@ class Image extends Forme implements Compactable { } public void compacter(int nElements) { - int minIndex = formeNumber - nElements - 1; + // Heavy solution + /* int minIndex = formeNumber - nElements - 1; for (int i = formeNumber - 1; (i > minIndex && !isEmpty()); i--) { supprimer(i); + } */ + // Lightweight solution + if (formeNumber - nElements > 0) { + formeNumber -= nElements; + } else { + formeNumber = 0; } } + public int compareTo(Image image) { + return formeNumber - image.getSize(); + } + }