Java Vector Intersect intersection(Vector vectA, Vector vectB)

Here you can find the source of intersection(Vector vectA, Vector vectB)

Description

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.

License

Open Source License

Declaration


public static Vector intersection(Vector vectA, Vector vectB) 

Method Source Code


//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;
    }
}

Related

  1. intersection(Vector a, Vector b)