Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. package list;
  2.  
  3.  
  4. /**
  5. * Implementation of List, which stores values into an array
  6. *
  7. * @author (Patrick Foltyn)
  8. * @version (Fall 2016)
  9. */
  10. public class ArrayList<E> implements List<E>
  11. {
  12. int size = 0;
  13. E[] values;
  14. /** cap is equal to initial size of List*/
  15. public ArrayList(int cap){
  16. values = (E[])new Object[cap];
  17. }
  18.  
  19. public ArrayList(){
  20. this(20); //default ArrayList with 10 values
  21. }
  22.  
  23. public ArrayList(List<E> list){
  24. values = (E[])new Object[10];
  25. addAll(list);
  26. }
  27.  
  28. public int size(){
  29. return size;
  30. }
  31.  
  32. public boolean isEmpty(){
  33. if(size == 0)
  34. return true;
  35. return false;
  36. }
  37.  
  38. public void clear(){
  39. size = 0;
  40. }
  41.  
  42. public void add(E value){
  43. add(size,value);
  44. }
  45.  
  46. public void add(int ndx, E value){
  47. if(values.length==size)
  48. alloc();
  49. for(int i = size-1; i >= ndx; i--)
  50. values[i+1]=values[i];
  51. values[ndx]=value;
  52. size++;
  53. }
  54.  
  55. public E get(int ndx){
  56. return values[ndx];
  57. }
  58.  
  59. public E set(int ndx, E value){
  60. E result = values[ndx];
  61. values[ndx] = value;
  62. return result;
  63. }
  64.  
  65. public E remove(int ndx){
  66. E result = values[ndx];
  67. for(int i = ndx; i < size-1; i++)
  68. values[i] = values[i+1];
  69. size--;
  70. return result;
  71. }
  72.  
  73. private void alloc(){
  74. E[] temp = (E[]) new Object[2*values.length];
  75. for(int i = 0; i < size; i++)
  76. temp[i]=values[i];
  77. values = temp;
  78. }
  79.  
  80. public int indexOf(Object obj){
  81. return indexOf(obj,0);
  82. }
  83.  
  84. private int indexOf(Object obj, int start){
  85. if(start >= size)
  86. return -1;
  87. if(values[start]. equals(obj))
  88. return start;
  89. return indexOf(obj, start + 1);
  90. }
  91.  
  92. public boolean contains(Object obj){
  93. if(indexOf(obj) == -1)
  94. return false;
  95. else{
  96. return true;
  97. }
  98. }
  99.  
  100. public boolean remove(Object obj){
  101. if(indexOf(obj) == -1)
  102. return false;
  103. else{
  104. remove(indexOf(obj));
  105. return true;
  106. }
  107. }
  108.  
  109. public String toString(){
  110. String outs = "[]";
  111. if(size == 0)
  112. return outs;
  113. else{
  114. outs = "[" + values[0];
  115. for(int i = 1; i < size; i++){
  116. outs = outs + "," + values[i] ;
  117. }
  118. return outs + "]";}
  119. }
  120.  
  121. public boolean equals(Object other){
  122. ArrayList othersList;
  123. if(other instanceof ArrayList)
  124. othersList = (ArrayList)other;
  125. else{
  126. return false;
  127. }
  128. if(othersList.size() == size){
  129. for(int i = 0; i < size; i++){
  130. if(!othersList.get(i).equals(values[i]))
  131. return false;
  132. }
  133. return true;
  134. }
  135. return false;
  136. }
  137.  
  138. public Iterator<E> iterator(){
  139. return new ArrayIterator<E>(this);
  140. }
  141.  
  142. public ListIterator<E> listIterator(){
  143. return new ArrayListIterator<E>(this);
  144. }
  145.  
  146. public ListIterator<E> listIterator(int start){
  147. return new ArrayListIterator<E>(this,start);
  148. }
  149.  
  150. public boolean containsNull(){
  151. for(int i = 0; i < size; i++)
  152. if(get(i) == null)
  153. return true;
  154. return false;
  155. }
  156.  
  157. public void addAll(List<E> other){
  158. Iterator<E> itty = other.iterator();
  159. while(itty.hasNext())
  160. add(itty.next());
  161. }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement