[TIL]Set.containsAll() 메서드에 대해서

AlBan·2021년 5월 17일
1

TIL

목록 보기
4/6

ContainsAll 메서드

Collection 클래스를 구현하는 모든 클래스들(List, Set, Map 등)은 contains 관련 메서드를 갖고 있다.

이 메서드는 해당 자료구조 내에서 인자로 주어진 요소를 갖고 있건, 인자로 주어진 Collection 클래스의 요소들을 갖고 있는지 확인할 때 사용한다.

그럼 contains와 containsAll의 차이는 무엇일까?

contains(E)와 containsAll(Collection<E>)의 차이

Collection 클래스의 containsAll 메서드

알고리즘 문제를 풀면서, 다른 Collection의 요소를 Set에 있는 요소에 포함되는지 판별하기 위해 ContainsAll() 메서드를 사용하면서 들었던 의문과 실험 결과이다.

결론부터 말하자면,

A \cap B == B 일 때

System.out.println(A.containsAll(B)); // true

A \cap B \ne 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
	}
}
profile
[Spring, React를 공부하는 끈질긴 개발자 지망생] 잊어버리지 않도록! 정리 또 정리!

0개의 댓글