Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. public class ArrayList implements List {
  2. private final static int INITIAL_CAPACITY = 20;
  3.  
  4. private Object[] elements;
  5. private int numberOfElements;
  6.  
  7. public ArrayList(int capacity){
  8. elements = new Object[capacity];
  9. numberOfElements = 0;
  10. }
  11. public ArrayList(){
  12. this(INITIAL_CAPACITY);
  13. }
  14.  
  15. public int size(){
  16. return numberOfElements;
  17. }
  18.  
  19. public Object get(int index){
  20. return elements[index];
  21. }
  22.  
  23. public Object set(int index , Object element){
  24. elements[index] = element;
  25. return element;
  26. }
  27.  
  28. public void add ( Object element){
  29. if ( size() >= elements.length)
  30. moreMemory(size()+1);
  31. elements[size()] = element;
  32. numberOfElements++;
  33. }
  34.  
  35. private void moreMemory(int numElem){
  36. if (numElem> elements.length){
  37. Object[] aux = new Object[Math.max(numElem,2*elements.length)];
  38. System.arraycopy(elements,0,aux,0,elements.length);
  39. elements = aux;
  40. }
  41. }
  42.  
  43. public void add(int index , Object element){
  44. if ( size() >= elements.length)
  45. moreMemory(size()+1);
  46. for ( int i = size() ; i> index; i--)
  47. elements[i] = elements[i-1];
  48. elements[index] = element;
  49. numberOfElements++;
  50. }
  51.  
  52. public Object remove(int index){
  53. Object value = elements[index];
  54. for(int j= index; j<size()-1;j++)
  55. elements[j] = elements[j+1];
  56. numberOfElements--;
  57. return value;
  58.  
  59. }
  60. @Override
  61. public Iterator<Object> iterator() {
  62. return new ArrayListIterator();
  63. }
  64. @Override
  65. public boolean contains(Object o) {
  66. checkElement(o);
  67. if (search(o) != -1)
  68. return true;
  69. return false;
  70. }
  71. @Override
  72. public boolean isEmpty() {
  73. return size() == 0;
  74. }
  75. @Override
  76. public Object remove(Object element) {
  77. checkElement(element);
  78. checkState();
  79. if (search(element) != -1)
  80. {
  81. return remove(search(element));
  82. }
  83. return null;
  84. }
  85. @Override
  86. public void clear() {
  87. Object[] aux = new Object[elements.length];
  88. elements = aux;
  89.  
  90. }
  91. @Override
  92. public int indexOf(Object o) {
  93. checkElement(o);
  94. return search(o);
  95. }
  96.  
  97.  
  98.  
  99. private void checkElement(Object element){
  100. if (element == null)
  101. throw new IllegalArgumentException("Error : el parametro es null");
  102. }
  103.  
  104. private void checkState(){
  105. if (isEmpty())//lista vacia
  106. throw new IllegalStateException("Lista vacia");
  107. }
  108.  
  109. private int search(Object element){
  110. int contador = 0;
  111. for (Object objeto:elements)
  112. {
  113. if (objeto.equals(element))
  114. return contador;
  115. else
  116. contador++;
  117. }
  118. return -1;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement