repositories
/
TP_POO.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TP2: Implement the Image class as a Comparator<Image> interface.
[TP_POO.git]
/
TP2
/
Image.java
diff --git
a/TP2/Image.java
b/TP2/Image.java
index 37bc6c3fc4d6b724c94db174b78f3e3bd79a8670..d508e75d4fc647d58f38bfa97432a46c8d29c4ff 100644
(file)
--- a/
TP2/Image.java
+++ b/
TP2/Image.java
@@
-1,5
+1,6
@@
+import java.util.Comparator;
-
class Image extends Forme implements Compactable
{
+
public class Image extends Forme implements Compactable, Comparable<Image>, Comparator<Image>
{
final int IMAGE_MAX_SIZE = 100;
Forme[] formeCollection;
int formeNumber;
final int IMAGE_MAX_SIZE = 100;
Forme[] formeCollection;
int formeNumber;
@@
-16,6
+17,10
@@
class Image extends Forme implements Compactable {
formeNumber = 0;
}
formeNumber = 0;
}
+ public int getSize() {
+ return formeNumber;
+ }
+
private boolean isEmpty() {
return (formeNumber == 0);
}
private boolean isEmpty() {
return (formeNumber == 0);
}
@@
-67,10
+72,25
@@
class Image extends Forme implements Compactable {
}
public void compacter(int nElements) {
}
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);
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();
+ }
+
+ public int compare(Image image1, Image image2) {
+ return image1.getSize() - image2.getSize();
+ }
+
}
}