is this how iterator and fail fast should be implemented? can someone ps check my code?

public Iterator<LinkedListNode> iterator() {
		return new SortedLinkedListIterator();
	}
 
	protected transient int modCount = 0;
 
	public class SortedLinkedListIterator implements Iterator<LinkedListNode> {
 
		private LinkedListNode position;	// cursor
		private int count;
		int expectedModCount = modCount;
 
		public SortedLinkedListIterator() {
			position = getHead();
			count = 0;
		}
 
		@Override
		public boolean hasNext() {
			if (count < size()) {
				return true;
			}
			return false;
		}
 
		@Override
		public LinkedListNode next() {
			modCount++;
			checkForComodification();
			if (hasNext() == false) {
				throw new NoSuchElementException();
			} else {
				position = position.getNext();
				count = count + 1;
			}
			return position;
		}
 
		@Override
		public void remove() {
			modCount++;
			checkForComodification();
		}
 
		final void checkForComodification() {
			if (modCount != expectedModCount)
				throw new RuntimeException(
						"Linked list changed during iteration");
		}
	}