2013-09-04 4 views
0

세트 오브 콜렉션이있는 경우. 그리고 컬렉션에 동일한 쌍을 발견해야한다, 예 :Collection에서 동일한 쌍을 찾는 방법은 무엇입니까?

컬렉션 :

  • 설정 {Object_A, Object_B, Object_C}
  • 설정 {Object_A, Object_B, Object_F}

방법 쌍을 찾으십시오 : Collection의 Object_A-Object_B> ??? 이 목적을 위해 어떤 Java 라이브러리를 사용할 수 있습니까?

답변

0

, 당신은 Google Guava를 사용하여 간단하게 호출 할 수있다 :

Sets.intersection(setOne, setTwo); 

Sets.intersection()를 참조하십시오. 예컨대

:

Sets.SetView<String> intersectionView = Sets.intersection(
    ImmutableSet.of("Object_A", "Object_B", "Object_C"), 
    ImmutableSet.of("Object_A", "Object_B", "Object_D")); 
Set<String> intersectionSet = intersectionView.immutableCopy(); 

intersectionView 모두 원래 세트 뒷받침 만 "Object_A""Object_B" 요소로서 볼이 될 것이다. intersectionSet은 교집합의 불변 집합입니다.

귀하의 필요에 따라 자세한 내용이나 대안 (예 : 변경 가능 등)은 구아바 문서를 참조하십시오.

0
Set<String> setA = new HashSet<>(Arrays.asList("one", "two", "three")); 
Set<String> setB = new HashSet<>(Arrays.asList("one", "two", "four")); 

Set<String> intersection = new HashSet<>(setA); 
intersection.retainAll(setB); 
System.out.println("intersection: " + intersection); 
0

다음 예가 도움이됩니다. 당신은 lib 디렉토리를 사용하려면

import java.util.Collection; 
import java.util.HashSet; 
import java.util.Arrays; 

class Identical { 
     public static void main(String [] args) { 

      Collection<String> listOne = Arrays.asList("Object_A","Object_B", 
                "Object_C"); 

      Collection<String> listTwo = Arrays.asList("Object_A","Object_B", 
                "Object_F"); 

      Collection<String> similar = new HashSet<String>(listOne); 
      Collection<String> different = new HashSet<String>(); 
      different.addAll(listOne); 
      different.addAll(listTwo); 

      similar.retainAll(listTwo); 
      different.removeAll(similar); 

     } 
} 
관련 문제