Here you can find the source of intersection(Vector vectA, Vector vectB)
This method returns a Vector containing the intersection of the objects contained in vectA and vectB.
This method will always return a new, non-null Vector, even if vectA and/or vectB are null.
public static Vector intersection(Vector vectA, Vector vectB)
//package com.java2s; /*// ww w. ja v a 2 s . 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 intersection of the * objects contained in vectA and 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 intersection(Vector vectA, Vector vectB) { Hashtable workSetA = new Hashtable(), workSetB = new Hashtable(), resultSet = new Hashtable(); Vector result = new Vector(); Enumeration Enum; Object item; /* -- */ if (vectA != null) { Enum = vectA.elements(); while (Enum.hasMoreElements()) { item = Enum.nextElement(); workSetA.put(item, item); } } if (vectB != null) { Enum = vectB.elements(); while (Enum.hasMoreElements()) { item = Enum.nextElement(); workSetB.put(item, item); } } Enum = workSetA.elements(); while (Enum.hasMoreElements()) { item = Enum.nextElement(); if (workSetB.containsKey(item)) { resultSet.put(item, item); } } Enum = workSetB.elements(); while (Enum.hasMoreElements()) { item = Enum.nextElement(); if (workSetA.containsKey(item)) { resultSet.put(item, item); } } Enum = resultSet.elements(); while (Enum.hasMoreElements()) { result.addElement(Enum.nextElement()); } return result; } }