Java 8 코딩 및 프로그래밍 면접 질문과 답변Language/Java2024. 7. 31. 12:13
Table of Contents
반응형
이 글에서는 Java 8 코딩 및 프로그래밍 면접 질문과 답변을 공유하겠습니다. 아래 질문들을 풀기 위해 Stream API 함수만 사용했습니다.
1. 정수 목록에 있는 모든 짝수를 찾아내는 방법은 무엇일까요?
List<Integer> list = Arrays.asList(10, 15, 8, 49, 25, 98, 32);
list.stream()
.filter(n -> n % 2 == 0)
.forEach(System.out::println);
// Output: 10, 8, 98, 32
2. 정수 목록에서 1로 시작하는 모든 숫자를 찾아낼 수 있나요?
List<Integer> myList = Arrays.asList(10, 15, 8, 49, 25, 98, 32);
myList.stream()
.map(s -> s + "") // Convert integer to String
.filter(s -> s.startsWith("1"))
.forEach(System.out::println);
// Output: 10, 15
3. 정수 목록에서 중복된 요소를 찾는 방법은 무엇입니까?
List<Integer> myList = Arrays.asList(10, 15, 8, 49, 25, 98, 98, 32, 15);
Set<Integer> set = new HashSet();
myList.stream()
.filter(n -> !set.add(n))
.forEach(System.out::println);
// Output: 98, 15
중복된 요소를 제거할 수도 있습니다.
// distinct() 키워드를 사용하여 중복된 요소를 제거합니다.
List<Integer> myList = Arrays.asList(1, 1, 85, 6, 2, 3, 65, 6, 45, 45, 5662, 2582, 2, 2, 266, 666, 656);
myList.stream()
.distinct()
.forEach(noDuplicateData -> System.out.println(noDuplicateData));
// Output: 1 85 6 2 3 65 45 5662 2582 266 666 656
또는 아래 방법을 사용할 수도 있습니다.
List<Integer> myList = Arrays.asList(1, 1, 85, 6, 2, 3, 65, 6, 45, 45, 5662, 2582, 2, 2, 266, 666, 656);
Set<Integer> set = new HashSet<>(myList);
// 필요한 경우 Set을 다시 List로 변환합니다.
List<Integer> uniqueData = set.stream().collect(Collectors.toList());
uniqueData.forEach(System.out::println);
// Output : 1 65 2 3 6 266 45 656 85 2582 666 5662
4. 정수 목록의 첫 번째 요소를 찾으세요.
List<Integer> myList = Arrays.asList(10, 15, 8, 49, 25, 98, 98, 32, 15);
myList.stream()
.findFirst()
.ifPresent(System.out::println);
// Output: 10
5. 정수 목록에 있는 총 요소의 개수를 찾으세요.
List<Integer> myList = Arrays.asList(10, 15, 8, 49, 25, 98, 98, 32, 15);
long count = myList.stream().count();
System.out.println(count);
// Output: 9
6. 정수 목록에 있는 최대값 요소를 찾으세요.
List<Integer> myList = Arrays.asList(10, 15, 8, 49, 25, 98, 98, 32, 15);
int max = myList.stream()
.max(Integer::compare)
.get();
System.out.println(max);
// Output: 98
7. 문자열에서 반복되지 않는 첫 번째 문자를 찾으세요.
String input = "Java articles are Awesome";
Character result = input.chars() // Stream of String
.mapToObj(s -> Character.toLowerCase(Character.valueOf((char) s))) // 먼저 Character 객체로 변환한 다음 소문자로 변환합니다.
.collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting())) // map에 문자를 key로 카운팅한 숫자를 value로 저장합니다.
.entrySet()
.stream()
.filter(entry -> entry.getValue() == 1L)
.map(entry -> entry.getKey())
.findFirst()
.get();
System.out.println(result);
// Output: j
8. 문자열에서 반복되는 첫 번째 문자를 찾으세요.
String input = "Java Articles are Awesome";
Character result = input.chars() // Stream of String
.mapToObj(s -> Character.toLowerCase(Character.valueOf((char) s))) // 먼저 Character 객체로 변환한 다음 소문자로 변환합니다.
.collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting())) // map에 문자를 key로 카운팅한 숫자를 value로 저장합니다.
.entrySet()
.stream()
.filter(entry -> entry.getValue() > 1L)
.map(entry -> entry.getKey())
.findFirst()
.get();
System.out.println(result);
// Output: a
9. 정수 목록에 있는 모든 값을 정렬하세요.
List<Integer> myList = Arrays.asList(10, 15, 8, 49, 25, 98, 98, 32, 15);
myList.stream()
.sorted()
.forEach(System.out::println);
// Output:
8
10
15
15
25
32
49
98
98
10. 정수 목록에 있는 모든 값을 내림차순으로 정렬하세요.
List<Integer> myList = Arrays.asList(10, 15, 8, 49, 25, 98, 98, 32, 15);
myList.stream()
.sorted(Collections.reverseOrder())
.forEach(System.out::println);
//Output:
98
98
49
32
25
15
15
10
8
11. 정수 배열 nums
가 주어졌을 때 배열에 어떤 값이 두 번 이상 나타나면 true
을 반환하고 모든 요소가 고유하면 false
를 반환합니다.
public boolean containsDuplicate(int[] nums) {
List<Integer> list = Arrays.stream(nums).boxed().collect(Collectors.toList());
Set<Integer> set = new HashSet<>(list);
if (set.size() == list.size()) {
return false;
}
return true;
}
Input: nums = [1,2,3,1]
Output: true
Input: nums = [1,2,3,4]
Output: false
12. Java 8에서 날짜 및 시간 API를 사용하여 현재 날짜와 시간을 어떻게 구하나요?
// LocalDate API를 사용하여 날짜 가져오기
System.out.println("Current Local Date: " + java.time.LocalDate.now());
// 시간을 얻기 위해 LocalTime API 사용
System.out.println("Current Local Time: " + java.time.LocalTime.now());
//날짜와 시간을 모두 얻기 위해 LocalDateTime API 사용
System.out.println("Current Local Date and Time: " + java.time.LocalDateTime.now());
13. 두 개의 Stream을 연결하는 Java 8 프로그램을 작성하세요.
List<String> list1 = Arrays.asList("Java", "8");
List<String> list2 = Arrays.asList("explained", "through", "programs");
// list1과 list2를 Stream으로 변환하여 연결했습니다.
Stream<String> concatStream = Stream.concat(list1.stream(), list2.stream());
// 연결된 Stream을 출력했습니다.
concatStream.forEach(str -> System.out.print(str + " "));
14. list 요소에 cube를 적용하고 50보다 큰 숫자를 필터링하는 프로그램을 작성하세요.
List<Integer> integerList = Arrays.asList(4, 5, 6, 7, 1, 2, 3);
integerList.stream()
.map(i -> i * i * i)
.filter(i -> i > 50)
.forEach(System.out::println);
// Output:
64
125
216
343
15. 배열을 정렬한 다음 정렬된 배열을 Stream으로 변환하는 Java 8 프로그램을 작성하세요.
int arr[] = { 99 , 55 , 203 , 99 , 4 , 91 };
// parallelSort()를 사용하여 배열을 정렬합니다.
Arrays.parallelSort(arr);
// 스트림으로 변환한 다음 forEach를 사용하여 인쇄합니다.
Arrays.stream(arr).forEach(n > System.out.print(n + " " ));
16. Java 8에서 객체를 대문자로 변환하기 위해 map을 어떻게 사용하나요.
List<String> nameLst = names.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(nameLst);
17. 문자열 배열 목록의 각 요소/단어를 계산하는 방법은 무엇인가요?
List<String> names = Arrays.asList("AA", "BB", "AA", "CC");
Map<String,Long> namesCount = names.stream()
.collect(Collectors.groupingBy(Function.identity(),
Collectors.counting()));
System.out.println(namesCount);
// Output: {CC=1, BB=1, AA=2}
18. 문자열 배열 목록에서 개수가 중복된 요소만 찾는 방법은 무엇인가요?
List<String> names = Arrays.asList("AA", "BB", "AA", "CC");
Map<String,Long> namesCount = names.stream()
.filter(x -> Collections.frequency(names, x) > 1)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(namesCount);
// Output: {AA=2}
반응형
'Language > Java' 카테고리의 다른 글
[Java] Logger 이해 (0) | 2024.08.08 |
---|---|
[Java 8] Stream API 면접 질문과 답변 (0) | 2024.07.30 |
[Java] Iteration 예 (0) | 2022.11.25 |
[Java] 스트림(Stream) 사용 방법 (0) | 2022.11.25 |
Java 8 람다(Lambda) 적용 예 (0) | 2022.11.24 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!