Introduce ListItemIterator
This commit is contained in:
		
							parent
							
								
									7e449ded6e
								
							
						
					
					
						commit
						78fcf375a4
					
				
					 4 changed files with 56 additions and 3 deletions
				
			
		|  | @ -1,7 +1,17 @@ | ||||||
| package aud.exam.prep.list; | package aud.exam.prep.list; | ||||||
| 
 | 
 | ||||||
| public class DoubleListItem<T> { | public class DoubleListItem<T> implements ListItem<T> { | ||||||
|     public T key; |     public T key; | ||||||
|     public DoubleListItem<T> next; |  | ||||||
|     public DoubleListItem<T> prev; |     public DoubleListItem<T> prev; | ||||||
|  |     public DoubleListItem<T> next; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public T head() { | ||||||
|  |         return key; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public ListItem<T> tail() { | ||||||
|  |         return next; | ||||||
|  |     } | ||||||
| } | } | ||||||
							
								
								
									
										8
									
								
								src/aud/exam/prep/list/ListItem.java
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/aud/exam/prep/list/ListItem.java
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | ||||||
|  | package aud.exam.prep.list; | ||||||
|  | 
 | ||||||
|  | public interface ListItem<T> { | ||||||
|  | 
 | ||||||
|  |     T head(); | ||||||
|  | 
 | ||||||
|  |     ListItem<T> tail(); | ||||||
|  | } | ||||||
							
								
								
									
										24
									
								
								src/aud/exam/prep/list/ListItemIterator.java
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/aud/exam/prep/list/ListItemIterator.java
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | ||||||
|  | package aud.exam.prep.list; | ||||||
|  | 
 | ||||||
|  | import java.util.Iterator; | ||||||
|  | 
 | ||||||
|  | public class ListItemIterator<T> implements Iterator<T> { | ||||||
|  | 
 | ||||||
|  |     private ListItem<T> current; | ||||||
|  | 
 | ||||||
|  |     public ListItemIterator(ListItem<T> current) { | ||||||
|  |         this.current = current; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean hasNext() { | ||||||
|  |         return current != null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public T next() { | ||||||
|  |         T t = current.head(); | ||||||
|  |         current = current.tail(); | ||||||
|  |         return t; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -1,6 +1,17 @@ | ||||||
| package aud.exam.prep.list; | package aud.exam.prep.list; | ||||||
| 
 | 
 | ||||||
| public class SingleListItem<T> { | public class SingleListItem<T> implements ListItem<T> { | ||||||
|  | 
 | ||||||
|     public T key; |     public T key; | ||||||
|     public SingleListItem<T> next; |     public SingleListItem<T> next; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public T head() { | ||||||
|  |         return key; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public ListItem<T> tail() { | ||||||
|  |         return next; | ||||||
|  |     } | ||||||
| } | } | ||||||
		Reference in a new issue