Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ArrayList implements List {
- private final static int INITIAL_CAPACITY = 20;
- private Object[] elements;
- private int numberOfElements;
- public ArrayList(int capacity){
- elements = new Object[capacity];
- numberOfElements = 0;
- }
- public ArrayList(){
- this(INITIAL_CAPACITY);
- }
- public int size(){
- return numberOfElements;
- }
- public Object get(int index){
- return elements[index];
- }
- public Object set(int index , Object element){
- elements[index] = element;
- return element;
- }
- public void add ( Object element){
- if ( size() >= elements.length)
- moreMemory(size()+1);
- elements[size()] = element;
- numberOfElements++;
- }
- private void moreMemory(int numElem){
- if (numElem> elements.length){
- Object[] aux = new Object[Math.max(numElem,2*elements.length)];
- System.arraycopy(elements,0,aux,0,elements.length);
- elements = aux;
- }
- }
- public void add(int index , Object element){
- if ( size() >= elements.length)
- moreMemory(size()+1);
- for ( int i = size() ; i> index; i--)
- elements[i] = elements[i-1];
- elements[index] = element;
- numberOfElements++;
- }
- public Object remove(int index){
- Object value = elements[index];
- for(int j= index; j<size()-1;j++)
- elements[j] = elements[j+1];
- numberOfElements--;
- return value;
- }
- @Override
- public Iterator<Object> iterator() {
- return new ArrayListIterator();
- }
- @Override
- public boolean contains(Object o) {
- checkElement(o);
- if (search(o) != -1)
- return true;
- return false;
- }
- @Override
- public boolean isEmpty() {
- return size() == 0;
- }
- @Override
- public Object remove(Object element) {
- checkElement(element);
- checkState();
- if (search(element) != -1)
- {
- return remove(search(element));
- }
- return null;
- }
- @Override
- public void clear() {
- Object[] aux = new Object[elements.length];
- elements = aux;
- }
- @Override
- public int indexOf(Object o) {
- checkElement(o);
- return search(o);
- }
- private void checkElement(Object element){
- if (element == null)
- throw new IllegalArgumentException("Error : el parametro es null");
- }
- private void checkState(){
- if (isEmpty())//lista vacia
- throw new IllegalStateException("Lista vacia");
- }
- private int search(Object element){
- int contador = 0;
- for (Object objeto:elements)
- {
- if (objeto.equals(element))
- return contador;
- else
- contador++;
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement