1: // @author Frank M. Carrano, Timothy M. Henry 2: // @version 5.0 3: // Locates a given entry within this bag. 4: // Returns a reference to the node containing the entry, if located, 5: // or null otherwise. 6: private Node getReferenceTo(T anEntry) 7: { 8: boolean found = false; 9: Node currentNode = firstNode; 10: 11: while (!found && (currentNode != null)) 12: { 13: if (anEntry.equals(currentNode.data)) 14: found = true; 15: else 16: currentNode = currentNode.next; 17: } // end while 18: 19: return currentNode; 20: } // end getReferenceTo 23: /** Removes one occurrence of a given entry from this bag, if possible. 24: @param anEntry The entry to be removed. 25: @return True if the removal was successful, or false otherwise. */ 26: public boolean remove(T anEntry) 27: { 28: boolean result = false; 29: Node nodeN = getReferenceTo(anEntry); 30: 31: if (nodeN != null) 32: { 33: nodeN.data = firstNode.data; // Replace located entry with entry in first node 34: firstNode = firstNode.next; // Remove first node 35: numberOfEntries--; 36: result = true; 37: } // end if 38: 39: return result; 40: } // end remove