package Lista; /** * @author daniel199410 */ public interface IList<E>{ public void add(E target); public boolean isEmpty(); public boolean isfull(); public boolean contains(E target); public void set(int index, E target); public E get(int index); public E remove(int index); public boolean remove(E target); public boolean removeAll(E target); public void print(); }
La clase Lista:
package Lista; /** * @author daniel199410 */ public class Lista<E>{ E[] data; int size; public Lista(){ data=((E[])new Object[1]); size=0; } /** * Agrega un elemento al final de la lista */ public void add(E target) { if(isfull()) stretch(); data[size]=target; size++; } /** * Agrega un elemento en un lugar específico de la lista */ public void add(E target, int index){ if(isfull()) stretch(); int j=0; E[] temp=((E[]) new Object[data.length]); System.arraycopy(data, index, temp, 0, data.length-index-1); for(int i=index+1; i<size; i++){ data[i]=temp[j]; j++; } data[index]=target; size++; } public boolean contains(E target) { for(int i=0; i<size; i++){ if(data[i].equals(target)) return true; } return false; } public E get(int index) { if(index>0 && index<size) return data[index]; return null; } public boolean isEmpty() { return size==0; } public boolean isfull() { return data.length==size; } /** * Imprime toda la lista */ public void print() { System.out.print("["); for(int i=0; i<size-1; i++){ if(i!=size-2) System.out.print(data[i]+","); else System.out.print(data[i]); } System.out.println("]"); } /** * Remueve el elemento que se encuentre en la posición index */ public E remove(int index) { if(index>=0 && index<size){ E element=data[index]; for(int i=index; i<size; i++) data[i]=data[i+1]; size--; return element; } return null; } /** * Remueve el primer elemento que sea igual al target */ public boolean remove(E target) { for(int i=size-1; i>=0; i--){ if(target.equals(data[i])){ remove(i); } } return false; } /** * Remueve todos los elementos que sean iguales a target */ public boolean removeAll(E target){ boolean x=true; while(x==true){ x=remove(target); } return x; } public void set(int index, E target) { if(index>=0 && index<size) data[index]=target; } /** * Aumenta la capacidad de la lista el doble */ private void stretch(){ E[] temp=(E[])new Object[data.length*2]; /** * arrayCopy(Object src, int srcPos, Object dest, * int destPos, int length); * src - El array de origen * srcPos - Posción de inicio en el array de origen * dest - El array de destino * destPos - Posición de inicio en el array de destino * length - EL número de elementos del array que va a * ser copiados */ System.arraycopy(data, 0, temp, 0, data.length); data=temp; } }Clase Principal
package Lista; /** * @author daniel199410 */ public class Main { public static void main(String[] args) { Lista l1=new Lista(); l1.add("100"); l1.add("200"); l1.add("300"); l1.add("400"); l1.add("500"); l1.add("600"); l1.add("700"); l1.add("800"); l1.add("900"); l1.add("100"); l1.add("200", 4); l1.add("300", 4); l1.add("400", 4); l1.add("500", 4); l1.add("600", 4); l1.add("700", 4); l1.add("800", 4); l1.add("900", 4); l1.add("100", 4); l1.add("200", 4); l1.add("300", 4); l1.add("400", 4); l1.add("500", 4); l1.add("600", 4); l1.add("700", 4); l1.add("800", 4); l1.add("900", 4); l1.add("100", 4); l1.add("200", 4); l1.add("300", 4); l1.print(); l1.removeAll("900"); l1.print(); } }
No hay comentarios:
Publicar un comentario