Here you can find the source of intersect(SortedSet
Parameter | Description |
---|---|
pSet1 | a Set. |
pSet2 | the other Set |
public static <E extends Comparable<? super E>> SortedSet<E> intersect(SortedSet<E> pSet1, SortedSet<E> pSet2)
//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; } }