Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Iterator;
- /**
- * @overview to represent a list of Integer.
- * A typical MinMaxIntList is AF(l) = {[x1, x2, ... xn | Integer]}
- * @properties
- * smallest: Integer
- * largest: Integer
- * @rep_invariant
- * l.size() > 0 /\
- * smallest != null /\ largest != null /\
- * smallest < x < largest
- *
- * @author Admin
- *
- */
- public class MinMaxIntList extends ArrayList<Integer> {
- // attributes
- private Integer smallest;
- private Integer largest;
- // constructors
- public MinMaxIntList() {
- super();
- }
- /**
- * @effects post-condition
- * @params num: Integer
- *
- */
- @Override
- public boolean add(Integer num) {
- if (num == null)
- return false;
- // update smallest
- if (num < smallest)
- smallest = num;
- // update largest
- if (num > largest)
- largest = num;
- return super.add(num);
- }
- @Override
- public Integer remove(int index) {
- // TODO Auto-generated method stub
- return super.remove(index);
- }
- @Override
- public boolean remove(Object o) {
- // TODO Auto-generated method stub
- return super.remove(o);
- }
- // getters
- /**
- * @return the smallest
- */
- public Integer getSmallest() {
- return smallest;
- }
- /**
- * @return the largest
- */
- public Integer getLargest() {
- return largest;
- }
- // setters
- /**
- * @param smallest the smallest to set
- */
- public void setSmallest(Integer smallest) {
- this.smallest = smallest;
- }
- /**
- * @param largest the largest to set
- */
- public void setLargest(Integer largest) {
- this.largest = largest;
- }
- // toString
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return "MinMaxIntList [smallest=" + smallest + ", largest=" + largest
- + "]";
- }
- // repOK
- public boolean repOK() {
- if (size() <=0)
- return false;
- if (smallest == null ~~ largest == null)
- return false;
- Iterator<Integer> iterator = super.iterator();
- while (iterator.hasNext()) {
- Integer i = iterator.next();
- if (smallest > i)
- return false;
- }
- iterator = super.iterator();
- while (iterator.hasNext()) {
- Integer i = iterator.next();
- if (largest < i)
- return false;
- }
- //
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement