@Override
	public int getCount(E data) {
		// We traverse the list until the node with data as its value is found, then return its count
		// If no such node is found we return 0
		if(head == null){
			// Empty list has no node with data as its value
			return 0;
		}
		// Does head match? If so, return its count
		ListNode current = head;
		if(comparator.compare(data, current.value) ==0){
			return current.count;
		}
		
		// Search the list for a match
		while(current.next != null && comparator.compare(data, current.next.value) !=0){
			current = current.next;
		}
		// No match was found
		if(current.next == null){
			return 0;
			
		// Found a match. 
		// TODO: is the node supposed to be moved to the front of the list here?
		}else{
			ListNode temp = current.next;
			current.next = temp.next;
			temp.next = head;
			head = temp;
			return head.count;
		}
	}