문제
내가 작성한 정답1 - stream
import java.util.Arrays;
class Solution {
public int solution(String[] s1, String[] s2) {
int answer = 0;
answer = (int) Arrays.stream(s1)
.filter(s -> Arrays.asList(s2).contains(s))
.count();
return answer;
}
}

answer = (int) Arrays.stream(s1)
// Arrays.asList 배열을 List로 변환
.filter(s -> Arrays.asList(s2).contains(s))
.count(); // long 타입
내가 작성한 정답2 - List
import java.util.Arrays;
import java.util.List;
class Solution {
public int solution(String[] s1, String[] s2) {
List<String> listS2 = Arrays.asList(s2);
int answer = 0;
for (String ele : s1) {
if (listS2.contains(ele)) {
answer++;
}
}
return answer;
}
}
다른 사람들이 작성한 정답
import java.util.*;
class Solution {
public int solution(String[] s1, String[] s2) {
Set<String> set = new HashSet<>(Arrays.asList(s1));
return (int)Arrays.stream(s2).filter(set::contains).count();
}
}
HashSet
중복된 요소를 허용하지 않는 데이터 구조로, 순서를 유지하지 않는다. null 허용
import java.util.HashSet;
HashSet<String> set = new HashSet<>();
// 요소 추가
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
fruits.add("banana"); // 중복, 추가되지 않음
// 요소 출력
System.out.println("Fruits: " + fruits); // 순서는 보장되지 않음
// 요소 포함 확인
System.out.println("Contains apple? " + fruits.contains("apple")); // true
System.out.println("Contains orange? " + fruits.contains("orange")); // false
// 요소 제거
fruits.remove("banana");
System.out.println("After removing banana: " + fruits);
// 크기 확인
System.out.println("Number of fruits: " + fruits.size()); // 2
Share article