Collection 클래스를 구현하는 모든 클래스들(List, Set, Map 등)은 contains 관련 메서드를 갖고 있다.
이 메서드는 해당 자료구조 내에서 인자로 주어진 요소를 갖고 있건, 인자로 주어진 Collection 클래스의 요소들을 갖고 있는지 확인할 때 사용한다.
그럼 contains와 containsAll의 차이는 무엇일까?
E
>)의 차이알고리즘 문제를 풀면서, 다른 Collection의 요소를 Set에 있는 요소에 포함되는지 판별하기 위해 ContainsAll() 메서드를 사용하면서 들었던 의문과 실험 결과이다.
결론부터 말하자면,
A B B 일 때
System.out.println(A.containsAll(B)); // true
A B B 일 때
System.out.println(A.containsAll(B)); // false
즉, B의 모든 원소가 A의 원소일 때만 true
값을 리턴하고, B의 원소중 하나라도 A의 원소가 아닌 경우가 생긴다면, false
를 리턴한다.
그렇기 때문에, B의 원소 중 하나라도 A의 원소인지 확인하고 싶다면, 반복문을 이용하여 다음과 같이 작성하면 된다.
for(var element : B){
if(A.contains(element)){
//do something
}else{
// do something
}
}