Java Collections 인터뷰 질문 및 답변 [초보자 및 경험자용]

게시 됨: 2020-12-16

학부 과정에서 Java를 다루었거나 Java로 작업한 적이 있다면 Java Collection 프레임워크에 대해 잘 알고 있어야 합니다. Java 여정을 막 시작한 초보자의 경우 Collection 프레임워크는 개체 그룹(컬렉션)을 저장하고 조작하도록 설계된 통합 아키텍처입니다.

기본적으로 "컬렉션"은 단일 개체 그룹을 나타냅니다. Java Collection에는 인터페이스, 클래스(ArrayList, Vector, Stack, Hashtable 등), 데이터 저장 및 처리를 위한 즉시 사용 가능한 아키텍처가 있는 알고리즘이 포함됩니다.

이 기사에서는 가장 자주 묻는 Java Collections 인터뷰 질문을 살펴보겠습니다. Java 프로필 후보자를 인터뷰하는 동안 인터뷰에서 일반적으로 묻는 기본적인 질문 목록을 만들었습니다. 이것은 다음 인터뷰에서 어떤 종류의 질문을 기대해야 하는지 이해하는 데 도움이 될 것입니다.

Java 컬렉션 인터뷰 질문 및 답변

1. Collections 프레임워크를 사용하면 어떤 이점이 있습니까?

Java 컬렉션에는 스레드로부터 안전한 작업을 위한 Generics 및 Concurrent 컬렉션 클래스가 모두 포함되어 있습니다. 또한 Java 동시 패키지의 구현과 함께 차단 인터페이스가 장착되어 있습니다. 다음은 Java Collections 프레임워크의 몇 가지 이점입니다.

코드 재사용성과 상호 운용성을 용이하게 합니다.

핵심 컬렉션 클래스를 사용하면 개발 노력과 시간이 크게 줄어듭니다.

JDK와 함께 제공되는 컬렉션 클래스는 코드 유지 관리에 필요한 노력을 줄여줍니다.

2. Array와 Collection을 구별하라.

배열과 컬렉션은 객체를 저장하고 데이터를 조작하는 데 사용되지만 몇 가지 고유한 차이점이 있습니다.

  • 런타임 요구 사항에 따라 배열의 길이를 늘리거나 줄일 수 없습니다. 배열의 크기는 고정되어 있습니다. 그러나 확장 요구 사항에 따라 컬렉션의 크기를 변경할 수 있습니다.
  • 배열은 동종(유사하거나 동일한) 개체만 저장할 수 있는 반면 컬렉션은 이종 개체 그룹을 저장할 수 있습니다.
  • 배열은 사용자 요구 사항에 대해 바로 사용할 수 있는 메서드(검색, 정렬, 삽입 등)를 제공하지 않지만 컬렉션에는 항상 바로 사용할 수 있는 메서드가 포함되어 있습니다.

3. Collections 프레임워크에서 Generics의 역할은 무엇입니까?

Generics를 사용하면 컬렉션이 저장할 수 있는 개체 유형을 지정하거나 정의할 수 있습니다. 다른 유형의 요소를 추가하려고 하면 Generics는 컴파일 시간 오류를 표시합니다. 따라서 컴파일 중에 오류를 표시하여 런타임에 ClassCastException을 방지하는 데 도움이 됩니다. 또한 Generics는 캐스팅 및 instanceof 함수를 사용할 필요가 없으므로 코드를 깨끗하고 정확하게 만듭니다.

4. Collections 프레임워크의 인터페이스 이름을 지정합니다.

Collections 프레임워크의 5가지 핵심 인터페이스는 다음과 같습니다.

컬렉션 인터페이스 – Java 컬렉션 계층 구조의 기초입니다. Java의 대부분의 컬렉션은 Collections 인터페이스에서 상속됩니다.

목록 인터페이스 – 순서가 지정된 요소와 해당 중복 요소를 포함하는 확장 배열입니다. 이 인터페이스는 인덱스 기반 검색을 지원합니다. 따라서 인덱스에서 모든 요소에 액세스할 수 있습니다. ArrayList, LinkedList 등과 같은 다른 클래스를 사용하여 구현됩니다.

Set 인터페이스 – 중복 요소를 포함할 수 없는 컬렉션 클래스입니다. List와 달리 인덱스 기반 검색을 지원하지 않으며 요소의 순서를 정의하지 않습니다. 집합은 수학적 집합 추상화를 모델링하고 HashSet, TreeSet, LinkedHashSet 등과 같은 클래스에 의해 구현됩니다.

인터페이스 – 데이터를 키-값 쌍으로 저장하는 2차원 데이터 구조입니다. 키는 고유한 해시코드이지만 값은 요소를 나타냅니다. 맵은 중복 키/요소를 가질 수 없습니다.

대기열 인터페이스 – 이 인터페이스는 FIFO(선입 선출) 방식으로 요소를 정렬합니다. 따라서 대기열 인터페이스의 요소는 전면에서 제거되고 후면에서 추가됩니다.

또한 읽기: Java 프로젝트를 코딩, 컴파일 및 실행하는 방법

5. Java에서 equals() 메소드를 대체해야 하는 경우는 언제입니까?

equals() 메서드의 초기 구현은 두 객체가 유사한지 확인하지만 속성을 기반으로 객체를 비교하려면 equals() 메서드를 재정의해야 합니다.

6. 속성 파일을 사용하는 것이 유익한가요?

예, Java에서 속성 파일을 사용하면 주요 이점이 확장됩니다. 이 파일의 값을 변경하면 Java 클래스를 다시 컴파일할 필요 없이 자동으로 반영됩니다. 결과적으로 Properties 파일은 변경하기 쉬운 정보(예: 사용자 이름 및 암호)를 저장하는 데 주로 사용되며 Java 응용 프로그램을 쉽게 관리할 수 있습니다.

7. Collection 프레임워크에서 Iterator의 기능은 무엇입니까?

Iterator는 java.util 패키지에 포함된 인터페이스입니다. Universal Java Cursor라고도 하는 Iterator는 개체 컬렉션을 반복하는 데 도움이 됩니다. Iterator를 사용하면 개체 컬렉션을 하나씩 전달할 수 있으며 READ 및 REMOVE 작업을 지원합니다. Iterator 메서드 이름을 쉽게 구현할 수 있어 널리 사용됩니다.

8. Collection 객체를 어떻게 정렬할 수 있습니까?

Collections 프레임워크에서 정렬은 일반적으로 Comparable Comparator 인터페이스를 사용하여 구현됩니다. Collections.sort() 메서드를 사용하면 compareTo() 메서드에 지정된 자연 순서에 따라 요소를 정렬합니다. 그러나 Collections.sort(Comparator) 메서드를 사용하면 Comparator 인터페이스의 compare() 메서드에 따라 요소를 정렬합니다.

읽기: 자바 스윙 프로젝트

9. ArrayList를 Array로, Array를 ArrayList로 변환할 수 있습니까?

네, 가능합니다. Array 클래스의 asList() 함수를 사용하여 Array를 ArrayList로 변환할 수 있습니다. 이에 대한 구문은 다음과 같습니다.

Arrays.asList(항목)

다음과 같이 ArrayList 클래스의 toArray() 함수를 사용하여 ArrayList를 Array로 변환할 수 있습니다.

List_object.toArray(새 문자열[List_object.size()])

10. 목록을 뒤집는 방법은 무엇입니까?

ArrayList를 어떻게 뒤집을 것인가?

Collections 클래스의 reverse() 함수를 사용하여 ArrayList를 되돌릴 수 있습니다. 이에 대한 구문은 다음과 같습니다.

public static void reverse(컬렉션 c)

11. "BlockingQueue"란 무엇입니까?

BlockingQueue 인터페이스는 java.util.concurrent 패키지있습니다. 주요 목적은 스레드가 빈 큐를 큐에서 빼거나 ​​기존 전체 큐를 큐에 넣으려고 할 때마다 차단을 활성화하여 흐름 제어를 향상시키는 것입니다. BlockingQueue 인터페이스는 null 값을 허용하지 않으며 null 값을 삽입하려고 하면 NullPointerException이 표시됩니다.

12. "우선 대기열"을 설명하십시오.

우선 순위 큐는 표준 큐 또는 스택 데이터 구조와 같은 추상 데이터 유형입니다. 그러나 이 대기열에서 각 요소에는 "우선순위"라는 고유한 기능이 있습니다. 우선순위 힙을 기반으로 하기 때문에 Priority Queue는 삽입 순서에 관계없이 낮은 우선순위 요소보다 높은 우선순위 요소를 먼저 제공합니다. 우선 순위 대기열에서 요소는 자연 순서에 따라 또는 대기열 생성 시 사용되는 비교기에 의해 정렬됩니다(사용하는 생성자에 따라 다름).

13. HashSet 클래스는 요소를 어떻게 저장합니까?

HashSet 클래스는 AbstractSet 클래스를 상속하고 Set 인터페이스를 구현하는 Java Collections 프레임워크의 멤버입니다.

HashSet은 요소 컬렉션을 만들고 저장하기 위해 Hashtable을 구현합니다. Hashtable은 해싱 메커니즘을 사용하여 HashSet 내에 데이터를 저장하는 HashMap 클래스의 인스턴스입니다. 해싱은 정보를 해시 코드라고 하는 고유한 값으로 변환하는 기술을 말합니다. 해시 코드는 고유 키와 관련된 데이터를 인덱싱합니다.

14. TreeSet 또는 HashSet에 null 요소를 추가할 수 있습니까?

HashSet에는 하나의 null 요소만 추가할 수 있지만 TreeSet에서는 요소를 저장하기 위해 NavigableMap을 사용하기 때문에 그렇게 할 수 없습니다. NavigableMap은 null 값을 허용/지원하지 않는 SortedMap의 하위 유형입니다. TreeSet에 null 요소를 삽입하면 NullPointerException이 발생합니다.

15. emptySet() 함수는 무엇을 합니까?

Java에서 Collections.emptySet()는 모든 null 요소를 제거하여 빈 불변 집합을 반환하는 데 사용됩니다. 다음은 emptySet()을 선언하는 구문입니다.

공개 정적 최종 <T> Set<T> emptySet()

16. Map 인터페이스가 컬렉션 인터페이스를 확장하지 않는 이유는 무엇입니까?

Map 인터페이스는 키-값 쌍 구조를 따르는 반면 Collection 인터페이스는 정의된 액세스 메커니즘을 사용하여 구조화된 방식으로 객체 컬렉션을 저장합니다. Collection 인터페이스의 add(E e) 함수가 Map의 put(K key, V value) 함수의 키-값 쌍 모델을 지원하지 않기 때문에 Map은 Collection 인터페이스를 확장하지 않습니다.

17. Map 인터페이스에 의해 확장된 다양한 Collection 보기의 이름을 지정하십시오.

Map 인터페이스는 다음과 같은 키-값 쌍의 세 가지 보기를 제공합니다.

  • 키 세트 보기
  • 값 집합 보기
  • 엔트리 세트 보기

18. Java Hashmap의 핵심 기능을 나열하십시오.

Hashmap의 기본 기능은 다음과 같습니다.

  • 키-값 쌍을 형성하여 요소를 저장하고 키를 올바른 메소드에 전달하여 값을 검색할 수 있습니다.
  • 맵에 요소가 없으면 NoSuchElementException을 표시합니다.
  • 객체 참조만 저장하므로 double 또는 int와 같은 기본 데이터 유형을 사용할 수 없습니다. 대신 Integer 또는 Double과 같은 래퍼 클래스를 사용할 수 있습니다.

필독: 자바 인터뷰 질문 및 답변

19. "스택"을 정의합니다.

Java에서 스택은 함수에 의해 생성된 임시 변수를 보유하는 컴퓨터 메모리의 지정된 영역을 나타냅니다. 변수는 스택에서 런타임 중에 선언, 저장 및 초기화됩니다.

20. "Big-O 표기법"을 정의하십시오.

Big-O 표기법은 데이터 구조의 요소 수와 관련하여 알고리즘의 성능을 정의합니다. 컬렉션 클래스는 데이터 구조이므로 Big-O 표기법을 사용하여 메모리, 시간 및 성능을 기반으로 사용할 컬렉션 구현을 결정해야 합니다.

세계 최고의 대학 에서 소프트웨어 엔지니어링 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

Java, 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 9+ 시간의 엄격한 교육을 제공하는 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 Executive PG 프로그램을 확인하십시오. 프로젝트 및 과제, IIIT-B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

당신의 꿈의 직업에 착륙

지금 소프트웨어 공학 석사 지원