Java Vector Difference difference(Vector vectA, Vector vectB)

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

Description

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.

License

Open Source License

Declaration


public static Vector difference(Vector vectA, Vector vectB) 

Method Source Code


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

Related

  1. difference(Vector a, Vector b)
  2. minus(Vector vectA, Vector vectB)