After looking through the source code I've found that the ArrayAdapter uses List.indexOf(Object) to find the object and this method returns -1 when it doesn't exist.
GrepCode is awesome for finding stuff when the documentation is bad, I use it at least once a day :)