Java SortedSet intersect(SortedSet pSet1, SortedSet pSet2)

Here you can find the source of intersect(SortedSet pSet1, SortedSet pSet2)

Description

Computes a new set, that is the intersection of set1 and set2.

License

Open Source License

Parameter

Parameter Description
pSet1 a Set.
pSet2 the other Set

Return

Setintersection.

Declaration

public static <E extends Comparable<? super E>> SortedSet<E> intersect(SortedSet<E> pSet1, SortedSet<E> pSet2) 

Method Source Code

//package com.java2s;
/*//from  w  w w.  j  a  v  a2  s .c  o  m
 *  CPAchecker is a tool for configurable software verification.
 *  This file is part of CPAchecker.
 *
 *  Copyright (C) 2007-2015  Dirk Beyer
 *  All rights reserved.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 *
 *  CPAchecker web page:
 *    http://cpachecker.sosy-lab.org
 */

import java.util.Iterator;

import java.util.SortedSet;
import java.util.TreeSet;

public class Main {
    /**
     * Computes a new set, that is the intersection of <i>set1</i> and <i>set2</i>.
     * @param pSet1 a Set.
     * @param pSet2 the other Set
     * @return Setintersection.
     */
    public static <E extends Comparable<? super E>> SortedSet<E> intersect(SortedSet<E> pSet1, SortedSet<E> pSet2) {
        SortedSet<E> result = new TreeSet<>();
        Iterator<E> it1 = pSet1.iterator();
        Iterator<E> it2 = pSet2.iterator();

        if (!it1.hasNext()) {
            return result;
        }
        if (!it2.hasNext()) {
            return result;
        }

        E elem1 = pSet1.first();
        E elem2 = pSet2.first();

        while (true) {
            if (elem1.compareTo(elem2) == 0) {
                result.add(elem1);
                if (!it1.hasNext()) {
                    break;
                }
                if (!it2.hasNext()) {
                    break;
                }
                elem1 = it1.next();
                elem2 = it2.next();
            }
            if (elem1.compareTo(elem2) < 0) {
                if (!it1.hasNext()) {
                    break;
                }
                elem1 = it1.next();
            }
            if (elem1.compareTo(elem2) > 0) {
                if (!it2.hasNext()) {
                    break;
                }
                elem2 = it2.next();
            }
        }

        return result;
    }
}

Related

  1. fillOutHourly(SortedSet hours)
  2. getEntryOrEmptySet(K key, Map> map)
  3. getFlatItems(Map> linkedWorkItemIDsMap)
  4. getSortedIntersectionValues(Collection colection1, Collection colection2)
  5. getSortedTypes(Class[] types)
  6. intersectSorted(final Collection c1, final Collection c2)
  7. mapToSortedSet(Map map)
  8. newSortedSet()
  9. setDistance(SortedSet s1, SortedSet s2)