Duplicate :
|
Name: auR10023 Date: 08/15/2001 java.util.HashSet.contains(Object ) doesn`t work with null objects. The javadoc for this method says nothing about the difference between null and non-null objects. javadoc for HashSet: ... public boolean contains(Object o) Returns true if this set contains the specified element. Specified by: contains in interface Set Overrides: contains in class AbstractCollection Parameters: o - element whose presence in this set is to be tested. Returns: true if this set contains the specified element. ... But this method returns false for null object contained in the HashSet. Here is the example: ---------------t.java--------------- import java.util.*; class t { public static void main(String args[]) { HashSet set = new HashSet(); set.add(null); set.add("dd"); System.out.println("size of HashSet :" + set.size()); System.out.println( set.contains(null)); } } #java -version java -version java version "1.4.0-beta_refresh" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta_refresh-b75) Java HotSpot(TM) Client VM (build 1.4.0-beta_refresh-b75, mixed mode) #java -cp . t size of HashSet :2 false #java -version java version "1.3.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-C) Java HotSpot(TM) Client VM (build 1.3.0-C, interpreted mode) #java -cp .t size of HashSet :2 true ======================================================================