private static ListItem binarySearchArray(ListItem[] items,
            String target) {
    	System.out.println("Binary Searching for " + target + ".");
    	ListItem currentItem = new ListItem();
    	boolean isFound = false;
    	int counter = 0;
    	int low  = 0;
    	int high = items.length-1; // because 0-based arrays
    	while ( (!isFound) && (low <= high)) {
    		int mid = Math.round((high + low) / 2);
    		currentItem = items[mid];
    		if (currentItem.getName().equalsIgnoreCase(target)) {
    			// We found it!
    			isFound = true;
    			retVal = currentItem;
    		} else {
    			// Keep looking.
    			counter++;
    			if (currentItem.getName().compareToIgnoreCase(target) > 0) {
					// target is higher in the list than the currentItem (at mid)
    				high = mid - 1;
    			} else {
    				// target is lower in the list than the currentItem (at mid)
    				low = mid + 1;
    			}
    		}
    	}
    	if (isFound) {
    		System.out.println("I found the "+target+" you were looking for!");
    	} else {
    		System.out.println("Could not find the " + target);
    	}

    	return retVal;
    }