고유값과 집합 연산을 사용합니다.
Set은 중복을 허용하지 않습니다. HashSet은 일반적인 빠른 포함 검사, LinkedHashSet은 삽입 순서, TreeSet은 정렬 순서를 제공합니다.
retainAll은 backend에서 frontend에 없는 원소를 모두 지우는 연산이라, 교집합이 새 집합이 아니라 backend 자신에 남아 공통: [Docker]가 출력됩니다. Java와 JavaScript는 앞부분이 같아도 equals로는 다른 문자열이라 공통으로 잡히지 않습니다. 원래 backend를 보존하려면 new HashSet<>(backend)로 복사한 뒤 그 복사본에 retainAll을 호출합니다.
중복 판단은 equals와 hashCode 계약을 사용합니다. 사용자 클래스에서 둘을 일관되게 구현하지 않으면 같은 의미의 값이 중복될 수 있습니다.
권한과 태그처럼 순서보다 포함 여부가 중요한 데이터에 사용하고 출력 순서가 필요하면 구현을 명시합니다.
HashSet의 반복 순서를 입력 순서라고 가정하지 마세요.
직접 바꿔보세요두 기술 집합의 교집합을 구하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.