Initial commit for 4.3

generic-observer
Selebrator 7 years ago
parent 7cdfc0e9fb
commit b35f991d5d

@ -0,0 +1,11 @@
package _4._3;
public interface Comparable {
/**
* Compared this and other
* Returns -1 if this less than other,
* 0 if this equal to other,
* 1 if this greater than other
*/
int compareTo(Comparable other);
}

@ -0,0 +1,24 @@
package _4._3;
public class ComparableInteger extends Integer implements Comparable {
public ComparableInteger(int value) {
super(value);
}
/**
* Compared this and other
* Returns -1 if this < other,
* 0 if this == other,
* 1 if this > other
*
* @throws NullPointerException if other == null
* @throws ClassCastException if !(other instanceof Integer)
* @see Comparable#compareTo(Comparable)
*/
@Override
public int compareTo(Comparable other) {
int o = ((Integer) other).value;
int t = this.value;
return t < o ? -1 : t == o ? 0 : 1;
}
}

@ -0,0 +1,13 @@
package _4._3;
public class Integer {
protected int value;
public Integer(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}

@ -0,0 +1,20 @@
package _4._3;
public class Utils {
/**
* Returns the smallest element
*
* @throws NullPointerException if elements == null
* @throws ArrayIndexOutOfBoundsException if elements.length == 0
*/
public static Comparable getMinimum(Comparable[] elements) throws NullPointerException, IndexOutOfBoundsException {
Comparable min = elements[0]; // assume the first element is the smallest
for(int i = 1; i < elements.length; i++) {
Comparable candidate = elements[i];
if(min.compareTo(candidate) > 0) {
min = candidate;
}
}
return min;
}
}
Loading…
Cancel
Save