|  | @@ -0,0 +1,76 @@
 | 
	
		
			
				|  |  | +package migl.util;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.util.Iterator;
 | 
	
		
			
				|  |  | +import java.util.NoSuchElementException;
 | 
	
		
			
				|  |  | +import java.util.function.Function;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +public class ConsEmptyList<E> implements ConsList<E> {
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	private final int size;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public ConsEmptyList() {
 | 
	
		
			
				|  |  | +		this.size = 0;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public Iterator<E> iterator() {
 | 
	
		
			
				|  |  | +		return new Iterator<E>() {
 | 
	
		
			
				|  |  | +			@Override
 | 
	
		
			
				|  |  | +			public boolean hasNext() {
 | 
	
		
			
				|  |  | +				return false;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			@Override
 | 
	
		
			
				|  |  | +			public E next() {
 | 
	
		
			
				|  |  | +				throw new NoSuchElementException("Liste vide");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		};
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public ConsList<E> prepend(E e) {
 | 
	
		
			
				|  |  | +		return new ConsListImpl<>(e, this);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public ConsList<E> append(E e) {
 | 
	
		
			
				|  |  | +		return new ConsListImpl<>(e, this);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public boolean isEmpty() {
 | 
	
		
			
				|  |  | +		return this.size == 0;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public E car() {
 | 
	
		
			
				|  |  | +		throw new NoSuchElementException("Liste vide");
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public ConsList<E> cdr() {
 | 
	
		
			
				|  |  | +		return new ConsEmptyList<>();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public int size() {
 | 
	
		
			
				|  |  | +		return this.size;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public <T> ConsList<T> map(Function<E, T> f) {
 | 
	
		
			
				|  |  | +		return new ConsEmptyList<>();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public String toString() {
 | 
	
		
			
				|  |  | +		return "()";
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public boolean equals(Object obj) {
 | 
	
		
			
				|  |  | +		//2 Liste vide sont toujours identiques
 | 
	
		
			
				|  |  | +		return true;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |