BuK/IIm12/Studenten/siclsche/Thema3/MyStack

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
Quellcode zu MyStack

<code id="516bcf1da76c6">
public class MyStack <T> implements Iterable<T>{
	
	private ArrayList<T> stack = new ArrayList<T> ();

 	public MyStack(){
 		stack = new ArrayList<T> ();
 	}
 	
 	public MyStack(ArrayList<T> stack){
 		this.stack = stack;
 	}
 	
 	public void add(T element){
 		stack.add(element);
 	}
 	
 	public void push(T element){
 		stack.add(0, element);
 	}
 	
 	public T pop( ){
 		if(!stack.isEmpty()){
 			T element = stack.get(0);
 			stack.remove(0);
 			return element;
 		}
 		return null;
 	}
 	
 	public T getFirstElement(){
 		return stack.get(0);
 	}
 	
 	public int getSize(){
 		return stack.size();
 	}
 	
 	public boolean removeAt(int index) {
 		if(index < stack.size()){
 			stack.remove(index);
 			return true;
 		}
 		return false;
 	}
 	
 	public void overrideStack(ArrayList<T> element){
 		stack = new ArrayList<T>();
 	}
 	
 	public boolean isEmpty(){
 		return stack.isEmpty();
 	}
 	
 	public T getElementAt(int index){
 		return stack.get(index);
 	}
 	
    public Iterator<T> iterator()  { 
    	return new StackIterator();  
    }
    
    public String toString(){
    	String value = "";
    	for(T stackElement : stack){
    		value+=stackElement.toString()+";";
    	}
		return value;
    	
    }

    private class StackIterator implements Iterator<T> {
    	
    	private int count=0;  
        public boolean hasNext(){ 
        	if(count < stack.size()){
        		return true;
        	}
        	return false;
        	                  
        }
        
        public void remove() { 
        	throw new UnsupportedOperationException();  
        }

        public T next() {
            if (!hasNext()) {
            	throw new NoSuchElementException();
            }
            T element = stack.get(count);
            count++;
            return element;
        }
    }
 	
}</code>