Here you can find the source of difference(Vector vectA, Vector vectB)
This method returns a Vector containing the set of objects contained in vectA that are not contained in vectB.
This method will always return a new, non-null Vector, even if vectA and/or vectB are null.
public static Vector difference(Vector vectA, Vector vectB)
//package com.java2s; /*/*w w w . j a v a2s. c o m*/ VectorUtils.java Convenience methods for working with Vectors.. provides efficient Union, Intersection, and Difference methods. Created: 21 July 1998 Release: $Name: $ Version: $Revision: 1.21 $ Last Mod Date: $Date: 2002/11/01 02:25:10 $ Module By: Jonathan Abbey, jonabbey@arlut.utexas.edu ----------------------------------------------------------------------- Ganymede Directory Management System Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 The University of Texas at Austin. Contact information Web site: http://www.arlut.utexas.edu/gash2 Author Email: ganymede_author@arlut.utexas.edu Email mailing list: ganymede@arlut.utexas.edu US Mail: Computer Science Division Applied Research Laboratories The University of Texas at Austin PO Box 8029, Austin TX 78713-8029 Telephone: (512) 835-3200 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ import java.util.*; public class Main { /** * <P>This method returns a Vector containing the set of objects * contained in vectA that are not contained in vectB.</P> * * <P>This method will always return a new, non-null Vector, even if * vectA and/or vectB are null.</P> */ public static Vector difference(Vector vectA, Vector vectB) { Vector result = new Vector(); Object item; /* -- */ if (vectA == null) { return result; } if (vectB == null) { return (Vector) vectA.clone(); } if (vectA.size() + vectB.size() > 10) // ass { Hashtable workSetB = new Hashtable(); Enumeration Enum; /* -- */ Enum = vectB.elements(); while (Enum.hasMoreElements()) { item = Enum.nextElement(); workSetB.put(item, item); } Enum = vectA.elements(); while (Enum.hasMoreElements()) { item = Enum.nextElement(); if (!workSetB.containsKey(item)) { result.addElement(item); } } } else { for (int i = 0; i < vectA.size(); i++) { item = vectA.elementAt(i); if (!vectB.contains(item)) { result.addElement(item); } } } return result; } }