Advertisement
dangtuanhung94

Tut SEG 2

Sep 2nd, 2014
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Iterator;
  3.  
  4. /**
  5. * @overview to represent a list of Integer.
  6. * A typical MinMaxIntList is AF(l) = {[x1, x2, ... xn | Integer]}
  7. * @properties
  8. * smallest: Integer
  9. * largest: Integer
  10. * @rep_invariant
  11. * l.size() > 0 /\
  12. * smallest != null /\ largest != null /\
  13. * smallest < x < largest
  14. *
  15. * @author Admin
  16. *
  17. */
  18. public class MinMaxIntList extends ArrayList<Integer> {
  19. // attributes
  20. private Integer smallest;
  21. private Integer largest;
  22.  
  23. // constructors
  24. public MinMaxIntList() {
  25. super();
  26. }
  27.  
  28. /**
  29. * @effects post-condition
  30. * @params num: Integer
  31. *
  32. */
  33. @Override
  34. public boolean add(Integer num) {
  35. if (num == null)
  36. return false;
  37.  
  38. // update smallest
  39. if (num < smallest)
  40. smallest = num;
  41.  
  42. // update largest
  43. if (num > largest)
  44. largest = num;
  45.  
  46. return super.add(num);
  47. }
  48.  
  49. @Override
  50. public Integer remove(int index) {
  51. // TODO Auto-generated method stub
  52. return super.remove(index);
  53. }
  54.  
  55. @Override
  56. public boolean remove(Object o) {
  57. // TODO Auto-generated method stub
  58. return super.remove(o);
  59. }
  60.  
  61. // getters
  62. /**
  63. * @return the smallest
  64. */
  65. public Integer getSmallest() {
  66. return smallest;
  67. }
  68.  
  69. /**
  70. * @return the largest
  71. */
  72. public Integer getLargest() {
  73. return largest;
  74. }
  75.  
  76. // setters
  77. /**
  78. * @param smallest the smallest to set
  79. */
  80. public void setSmallest(Integer smallest) {
  81. this.smallest = smallest;
  82. }
  83.  
  84. /**
  85. * @param largest the largest to set
  86. */
  87. public void setLargest(Integer largest) {
  88. this.largest = largest;
  89. }
  90.  
  91. // toString
  92. /* (non-Javadoc)
  93. * @see java.lang.Object#toString()
  94. */
  95. @Override
  96. public String toString() {
  97. return "MinMaxIntList [smallest=" + smallest + ", largest=" + largest
  98. + "]";
  99. }
  100.  
  101. // repOK
  102. public boolean repOK() {
  103. if (size() <=0)
  104. return false;
  105.  
  106. if (smallest == null ~~ largest == null)
  107. return false;
  108.  
  109. Iterator<Integer> iterator = super.iterator();
  110.  
  111. while (iterator.hasNext()) {
  112. Integer i = iterator.next();
  113.  
  114. if (smallest > i)
  115. return false;
  116. }
  117.  
  118. iterator = super.iterator();
  119. while (iterator.hasNext()) {
  120. Integer i = iterator.next();
  121.  
  122. if (largest < i)
  123. return false;
  124. }
  125.  
  126. //
  127. return true;
  128. }
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement