30 top java collections interview questions with answers
이 자습서에는 가장 자주 묻는 Java 컬렉션 인터뷰 질문 목록과 함께 답변 및 예제가 포함되어 있습니다. :
Java의 핵심 API는 Java Collections Framework입니다. 이 프로그래밍 언어의 기본 개념을 지원합니다. Java 개발자가되고 싶다면 이러한 핵심 개념을 잘 알고 있어야합니다.
Java 컬렉션의 영역은 매우 넓으며 인터뷰에서 많은 질문을 할 수 있습니다. 여기에 인터뷰에서 질문 할 수있는 관련 질문 목록을 모았습니다.
=> 여기에서 Java 교육 자습서의 A-Z를 보려면 여기를 확인하십시오.
학습 내용 :
자바 컬렉션 인터뷰 질문
Q # 1) Java Collections Framework를 설명하십시오.
대답: Java Collections Framework는 개체 그룹을 관리하고 저장하는 데 도움이되는 아키텍처입니다. 이를 통해 개발자는 사전 패키징 된 데이터 구조에 액세스하고 알고리즘을 사용하여 데이터를 조작 할 수도 있습니다.
Java 컬렉션에는 검색, 삭제, 삽입, 정렬 등과 같은 작업을 지원하는 인터페이스 및 클래스가 포함됩니다. 인터페이스 및 클래스와 함께 Java 컬렉션에는 조작에 도움이되는 알고리즘도 포함됩니다.
Q # 2) Java Collections의 이점은 무엇입니까?
대답:
Java 컬렉션의 이점은 다음과 같습니다.
- 컬렉션 클래스를 구현하는 대신 핵심 컬렉션 클래스를 사용하여 개발에 필요한 노력을 줄입니다.
- 잘 테스트 된 컬렉션 프레임 워크 클래스를 사용합니다. 따라서 코드 품질이 향상됩니다.
- 코드 유지 관리의 노력을 줄여줍니다.
- Java Collection Framework는 상호 운용 및 재사용이 가능합니다.
Q # 3) Java의 컬렉션 계층에 대해 무엇을 알고 있습니까?
대답:
(영상 출처 )
Q # 4) Java Collection의 기본 인터페이스에 대해 알려주십시오.
대답:
다음은 Java Collection Framework의 기본 인터페이스입니다.
수집: 컬렉션 계층 구조의 기본이며 해당 요소를 나타냅니다. 그러나 Java는 Collection의 직접적인 적용을 제공하지 않습니다. 또한 대부분의 Java 컬렉션은이 인터페이스에서 제공됩니다.
세트: 수학적 집합의 추상화를 모델링하므로 중복 요소를 보유 할 수 없습니다. 이름에서 알 수 있듯이 세트를 나타냅니다. 예를 들면 카드 한 벌.
명부: 중복 요소를 보유 할 수 있으며 정렬 된 콜렉션입니다. 인덱스를 사용하여 그 안의 모든 요소에 액세스 할 수 있습니다. 목록은 동적 길이를 가진 배열, 배열과 같습니다.
Java Collection의 몇 가지 인터페이스입니다. 그러나 아래와 같이 몇 가지 인터페이스가 더 있습니다.
- 열
- 대기열에서 빼기
- 반복자
- 반복 가능
- SortedSet
- ListIterator.
Q # 5) 직렬화 가능 및 복제 가능 인터페이스가 컬렉션에 의해 확장되지 않는 이유 상호 작용?
대답: 컬렉션 인터페이스의 임무는 요소라는 개체 그룹을 지정하는 것입니다. 컬렉션의 구현은 요소가 유지되는 방식을 결정합니다. 예를 들면 List 구현은 중복 요소를 허용하지만 Set 구현은 허용하지 않습니다.
많은 구현에는 공개 복제 방법이 있습니다. 그러나 컬렉션이 추상적이고 구현이 중요한 모든 것이기 때문에 모든 컬렉션 구현에 포함하는 것은 실용적이지 않습니다.
직렬화와 복제의 의미와 결과는 실질적인 구현 작업을하는 동안 의미가 있습니다. 따라서 직렬화 또는 복제 가능 여부와 방법을 결정하는 것은 실제 구현에 달려 있습니다.
자세히 알아보기 = >> Java의 마커 인터페이스 : 직렬화 및 복제 가능
이것이 모든 구현에서 직렬화 및 복제를 유도하는 것이 그다지 유연하지 않고 제한적인 이유입니다.
Q # 6) Java Collection Framework의 Iterator에서 무엇을 이해하고 있습니까?
대답: 단순 배열에서 루프를 사용하여 각 요소에 액세스 할 수 있습니다. 컬렉션의 요소에 액세스하기 위해 유사한 접근 방식이 필요한 경우 반복자를 사용합니다. Iterator는 Collection 개체의 요소에 액세스하는 데 사용되는 구성입니다.
Java에서 Iterator는 Collection Framework의 'Iterator'인터페이스를 구현하는 객체입니다. 이 인터페이스는 java.util 패키지의 일부입니다.
반복자의 몇 가지 특성은 다음과 같습니다.
- 반복자는 Collection 개체를 순회하는 데 사용됩니다.
- 반복자는 모든 컬렉션에 대해 동일한 반복자를 사용할 수 있으므로 '범용 Java 커서'라고합니다.
- 반복자는 컬렉션을 순회하는 것과 별도로 '읽기'및 '제거'작업을 제공합니다.
- 보편적이고 모든 컬렉션에서 작동하기 때문에 반복자는 구현하기가 더 쉽습니다.
Java 컬렉션 질문 나열
Q # 7) 목록 인터페이스 사용에 대해 알고 있습니까?
(영상 출처 )
대답: 목록 인터페이스의 목적은 삽입 순서를 유지하는 것입니다. 또한 중복 값을 저장할 수 있습니다.
포함 된 다양한 메서드를 사용하여 인덱스에 따라 요소를 원활하게 조작하는 데 도움이됩니다. ArrayList, Vector, Stack 및 LinkedList는 List 인터페이스를 구현하는 다양한 클래스입니다.
Q # 8) Java의 ArrayList에 대해 무엇을 이해하고 있습니까?
대답: List Interface의 구현은 ArrayList입니다. 목록에서 요소를 동적으로 추가하거나 제거하며 위치 액세스와 함께 요소 삽입도 제공합니다. ArrayList는 중복 값을 허용하며 요소 수가 초기 크기를 초과하면 크기가 동적으로 증가 할 수 있습니다.
Q # 9) 문자열 배열을 ArrayList로 어떻게 변환합니까?
대답: 이것은 면접관이 Collection utility.classes에 대한 이해를 확인하기 위해 묻는 초보자 수준의 프로그래밍 질문입니다. Collection 및 Arrays는 면접관이 자주 관심을 갖는 Collection Framework의 두 가지 유틸리티 클래스입니다.
컬렉션은 컬렉션 유형에 대한 특정 작업을 수행하기위한 특정 정적 함수를 제공합니다. Array에는 배열 유형에서 수행하는 유틸리티 기능이 있습니다.
//String array String() num_words = {'one', 'two', 'three', 'four', 'five'}; //Use java.util.Arrays class to convert to list List wordList = Arrays.asList(num_words);
String 유형과 별도로 다른 유형의 Array를 사용하여 ArrayList로 변환 할 수도 있습니다.
예를 들면
//Integer array Integer() numArray = {10,20,30,40}; //Convert to list using Arrays class asList method List num_List = Arrays.asList(numArray);
Q # 10) Array를 ArrayList로, ArrayList를 Array로 변환합니다.
대답: ArrayList를 Array로 변환하려면 toArray () 메서드가 사용됩니다. List_object.toArray (new String (List_object.size ()))
asList () 메서드는 Array를 ArrayList로 변환하는 데 사용됩니다. Arrays.asList (항목). asList ()는 List 객체가 매개 변수 인 정적 메서드입니다.
Q # 11) LinkedList는 무엇이며 Java에서 지원되는 유형은 몇 개입니까?
(영상 출처 )
대답: LinkedList는 모든 링크가 다음 링크에 연결되는 일련의 링크가있는 데이터 구조입니다.
Java에서 요소를 저장하기 위해 두 가지 유형의 LinkedList가 사용됩니다.
- 단일 LinkedList : 여기에서 각 노드는 다음 노드에 대한 참조 또는 포인터와 함께 노드의 데이터를 저장합니다.
- 이중 링크 목록 : 이중 LinkedList에는 이중 참조, 다음 노드에 대한 참조, 이전 노드에 대한 참조가 있습니다.
Q # 12) BlockingQueue를 통해 무엇을 이해하고 있습니까?
대답: 간단한 대기열에서는 대기열이 꽉 차면 더 이상 항목을 삽입 할 수 없다는 것을 알고 있습니다. 이 경우 큐는 단순히 큐가 가득 차서 종료된다는 메시지를 제공합니다. 큐가 비어 있고 큐에서 제거 할 요소가없는 경우에도 유사한 경우가 발생합니다.
삽입 / 제거를 할 수 없을 때 종료하는 대신 항목을 삽입하거나 제거 할 수있을 때까지 기다리면 어떨까요?
이것은 대기열의 변형에 의해 응답됩니다. “차단 대기열” . 블로킹 큐에서 블로킹은 큐가 전체 큐를 큐에 넣거나 빈 큐를 큐에서 빼려고 할 때마다 큐에 넣기 및 큐에서 빼기 작업 중에 활성화됩니다.
차단은 다음 그림에 나와 있습니다.
BlockingQueue
따라서 대기열에 넣기 작업 중에 차단 대기열은 공간이 사용 가능해질 때까지 대기하여 항목을 성공적으로 삽입 할 수 있습니다. 마찬가지로 대기열에서 빼기 작업에서 차단 대기열은 항목을 작업에 사용할 수있을 때까지 대기합니다.
안드로이드 용 좋은 mp3 다운로더 앱이 뭐야
BlockingQueue는‘java.util.concurrent’패키지에 속하는‘BlockingQueue’인터페이스를 구현합니다. BlockingQueue 인터페이스는 null 값을 허용하지 않는다는 것을 기억해야합니다. null이 발생하면 NullPointerException이 발생합니다.
Q # 13) Java의 Priority Queue 란 무엇입니까?
대답: Java의 우선 순위 큐는 스택 또는 큐 데이터 구조와 유사합니다. Java의 추상 데이터 유형이며 java.util 패키지의 PriorityQueue 클래스로 구현됩니다. 우선 순위 대기열에는 우선 순위 대기열의 각 항목에 우선 순위가있는 특수 기능이 있습니다.
우선 순위 대기열에서 우선 순위가 높은 항목은 우선 순위가 낮은 항목 앞에있는 서버입니다.
우선 순위 대기열의 모든 항목은 자연 순서대로 정렬됩니다. 우선 순위 큐 객체를 생성 할 때 비교기를 제공하여 사용자 정의 순서에 따라 요소를 정렬 할 수도 있습니다.
인터페이스 인터뷰 질문 설정
Q # 14) Set Interface의 용도는 무엇인가요? 이것을 구현하는 클래스에 대해 알려주십시오. 상호 작용.
대답: Set Interface는 집합 이론에서 수학적 집합을 형성하는 데 사용됩니다. List 인터페이스와 비슷하지만 약간 다릅니다. Set Interface는 정렬 된 컬렉션이 아니므로 요소를 제거하거나 추가 할 때 순서가 유지되지 않습니다.
주로 중복 요소를 지원하지 않으므로 Set Interface의 각 요소는 고유합니다.
또한 다른 구현이있는 경우에도 Set 인스턴스를 의미있게 비교할 수 있습니다. 또한 equals 및 hashCode의 작업에 대한보다 실질적인 계약을 체결합니다. 두 예제에 동일한 요소가 있으면 동일합니다.
이러한 모든 이유로 Set Interface에는 List와 같은 요소 인덱스 기반 작업이 없습니다. 컬렉션 인터페이스 상속 메서드 만 사용합니다. TreeSet, EnumSet, LinkedHashSet 및 HashSet은 Set Interface를 구현합니다.
Q # 15) HashSet과 TreeSet에 null 요소를 추가하고 싶습니다. 할 수 있습니까?
대답: NavigableMap을 요소 저장소로 사용하므로 TreeSet에 null 요소를 추가 할 수 없습니다. 그러나 HashSet에 하나만 추가 할 수 있습니다. SortedMap은 null 키를 허용하지 않으며 NavigableMap은 하위 집합입니다.
이것이 TreeSet에 null 요소를 추가 할 수없는 이유입니다. 그렇게하려고 할 때마다 NullPointerException이 발생합니다.
Q # 16) LinkedHashSet에 대해 무엇을 알고 있습니까?
대답: LinkedHashSet은 HashSet의 하위 클래스이며 Set 인터페이스를 적용합니다. HashSet의 정렬 된 형태로, 포함 된 모든 요소에서 이중으로 연결된 목록을 관리합니다. 삽입 순서를 유지하고 상위 클래스와 마찬가지로 고유 한 요소 만 전달합니다.
Q # 17) HashSet이 요소를 저장하는 방식에 대해 이야기하십시오.
대답: HashMap은 키-값 쌍을 저장하지만 키는 고유해야합니다. 이 Map 기능은 HashSet에서 모든 요소가 고유한지 확인하는 데 사용됩니다.
HashSet의 Map 선언은 아래와 같이 나타납니다.
private transient HashMapmap; //This is added as value for each key private static final Object PRESENT = new Object();
HashSet에 저장된 요소는 Map에 키로 저장되고 객체는 값으로 표시됩니다.
Q # 18) EmptySet () 메서드를 설명하세요.
대답: Emptyset () 메서드는 null 요소를 제거하고 변경 불가능한 빈 집합을 반환합니다. 이 불변 세트는 직렬화 가능합니다. Emptyset ()의 메서드 선언은 다음과 같습니다. public static final set emptySet ().
지도 인터페이스 인터뷰 질문
Q # 19)지도 인터페이스에 대해 알려주세요.
대답: Map Interface는 더 빠른 조회를 위해 설계되었으며 요소를 키-값 쌍의 형태로 저장합니다. 여기에서는 모든 키가 고유하므로 단일 값에만 연결하거나 매핑합니다. 이러한 키-값 쌍을 맵 항목이라고합니다.
이 인터페이스에는 고유 키에 따라 요소의 검색, 삽입 및 제거를위한 메소드 서명이 있습니다. 따라서 사전과 같은 키-값 연결을 매핑하는 데 완벽한 도구가됩니다.
Q # 20)지도는 컬렉션 인터페이스를 확장하지 않습니다. 왜?
대답: 컬렉션 인터페이스는 객체의 축적이며 이러한 객체는 지정된 액세스 메커니즘으로 구조적으로 저장됩니다. Map 인터페이스는 키-값 쌍의 구조를 따릅니다. Collection Interface의 add 메소드는 Map Interface의 put 메소드를 지원하지 않습니다.
이것이 Map이 Collection Interface를 확장하지 않는 이유이지만 여전히 Java Collection Framework의 중요한 부분입니다.
Q # 21) HashMap은 Java에서 어떻게 작동합니까?
대답: HashMap은 Map을 기반으로하는 컬렉션이며 해당 항목은 키-값 쌍으로 구성됩니다. HashMap은 일반적으로, 또는로 표시됩니다. 각 hashmap 요소는 해당 키를 사용하여 액세스 할 수 있습니다.
HashMap은 '해싱'원칙에 따라 작동합니다. 해싱 기법에서 긴 문자열은 알고리즘에 불과한 '해시 함수'에 의해 더 작은 문자열로 변환됩니다. 더 작은 문자열은 더 빠른 검색과 효율적인 인덱싱에 도움이됩니다.
Q # 22) IdentityHashMap, WeakHashMap 및 ConcurrentHashMap을 설명하십시오.
대답:
IdentityHashMap HashMap과 매우 유사합니다. 차이점은 요소를 비교하는 동안 IdentityHashMap은 참조 동등성을 사용한다는 것입니다. 선호하는 맵 구현이 아니며 맵 인터페이스를 실행하지만 의도적으로 맵의 일반 계약을 준수하지 않습니다.
따라서 객체를 비교할 때 equals 메소드를 사용할 수 있습니다. 참조 같음 의미 체계가 필요한 드문 경우에 사용하도록 설계되었습니다.
WeakHashMap 구현은 키에 대한 약한 참조 만 저장합니다. 이렇게하면 WeakHashMap 외부에 키에 대한 참조가 더 이상 없을 때 키-값 쌍의 가비지 수집이 가능합니다.
== 연산자를 사용하여 equals 메소드로 객체 ID 테스트를 수행하는 주요 객체와 함께 주로 사용됩니다.
ConcurrentHashMap ConcurrentMap 및 Serializable 인터페이스를 모두 구현합니다. 다중 스레드 환경에서 잘 작동하지 않기 때문에 HashMap의 업그레이드 된 향상된 버전입니다. HashMap과 비교할 때 성능이 더 높습니다.
Q # 23) HashMap의 좋은 키의 품질은 무엇입니까?
대답: HashMap의 작동 방식을 이해하면 주로 키 객체의 equals 및 hashCode 메서드에 의존한다는 것을 쉽게 알 수 있습니다. 따라서 좋은 키는 가져 오는 시간에 관계없이 동일한 hashCode를 반복해서 제공해야합니다.
같은 방식으로 equals 메서드와 비교할 때 동일한 키는 true를 반환해야하고 다른 키는 false를 반환해야합니다. 이것이 HashMap 키의 가장 좋은 후보가 불변 클래스라고하는 이유입니다.
Q # 24) 언제 TreeMap을 사용할 수 있나요?
(영상 출처 )
대답: HashMap의 특별한 형태 인 TreeMap은 HashMap에서 누락 된 것으로 기본적으로 '자연 순서'로 키의 순서를 유지합니다. 일부 키로 개체를 정렬하는 데 사용할 수 있습니다.
예를 들면 사전을 사전 순으로 구현하고 인쇄하려면 TreeSet과 함께 TreeMap을 사용할 수 있습니다. 자동으로 정렬됩니다. 물론 수동으로도 할 수 있었지만 TreeMap을 사용하면 작업이 더 효율적으로 수행 될 것입니다. 랜덤 액세스가 중요한 경우에도 사용할 수 있습니다.
질문의 차이점
Q # 25) 컬렉션과 컬렉션의 차이점은 무엇입니까?
대답:
수집 | 컬렉션 |
---|---|
ListIterator를 사용하여 집합을 탐색 할 수 없습니다. | ListIterator는 모든 방향으로 List를 순회 할 수 있습니다. |
인터페이스입니다. | 수업입니다. |
컬렉션은 개체 그룹을 단일 항목으로 나타냅니다. | 컬렉션은 컬렉션 개체에 대한 다양한 유틸리티 방법을 정의합니다. |
Collection Framework의 루트 인터페이스입니다. | 컬렉션은 유틸리티 클래스입니다. |
Collection Framework의 데이터 구조를 파생합니다. | 컬렉션에는 데이터 구조를 조작하는 데 도움이되는 다양한 정적 메서드가 포함되어 있습니다. |
Q # 26) Array는 ArrayList와 어떻게 다릅니 까?
대답:
Array와 ArrayList의 차이점은 다음과 같습니다.
정렬 | ArrayList |
---|---|
배열은 강력한 형식의 클래스입니다. | ArrayList는 느슨한 형식의 클래스입니다. |
배열은 동적으로 크기를 조정할 수 없으며 크기는 정적입니다. | ArrayList는 동적으로 크기를 조정할 수 있습니다. |
배열은 요소의 boxing 및 unboxing이 필요하지 않습니다. | ArrayList는 요소의 박싱 및 언 박싱이 필요합니다. |
Q # 27) ArrayList와 LinkedList를 구분하세요.
대답:
ArrayList | LinkedList |
---|---|
ArrayList는 요소를 저장하기 위해 내부적으로 동적 배열을 사용합니다. | LinkedList는 이중 연결 목록을 구현합니다. |
요소의 ArrayList 조작은 다소 느립니다. | LinkedList는 요소를 훨씬 빠르게 조작합니다. |
ArrayList는 목록으로 만 작동 할 수 있습니다. | LinkedList는 목록과 대기열 모두로 작동 할 수 있습니다. |
데이터 저장 및 액세스에 유용합니다. | 데이터 조작에 유용합니다. |
Q # 28) Iterable은 Iterator와 어떻게 다른가요?
대답:
반복 가능 | 반복자 |
---|---|
Java.lang 패키지 인터페이스입니다. | Java.util 패키지 인터페이스입니다. |
Iterator라는 하나의 추상 메서드 만 생성합니다. | hasNext와 next의 두 가지 추상 메서드가 제공됩니다. |
순회 할 수있는 일련의 요소를 나타냅니다. | 반복 상태가있는 객체를 나타냅니다. |
Q # 29) 세트와 목록의 차이점을 설명하십시오.
대답:
세트 | 명부 |
---|---|
Set는 Set 인터페이스를 구현합니다. | 목록은 목록 인터페이스를 구현합니다. |
집합은 정렬되지 않은 요소 집합입니다. | 목록은 정렬 된 요소 집합입니다. |
세트는 삽입하는 동안 요소의 순서를 유지하지 않습니다. | 목록은 삽입하는 동안 요소의 순서를 유지합니다. |
이 세트는 중복 값을 허용하지 않습니다. | 목록은 중복 값을 허용합니다. |
세트에 레거시 클래스가 없습니다. | 목록에는 레거시 클래스 인 Vector가 포함됩니다. |
집합은 하나의 null 값만 허용합니다. | List의 null 값 수에는 제한이 없습니다. |
Q # 30) Queue와 Stack의 차이점은 무엇입니까?
대답:
열 | 스택 |
---|---|
Queue는 FIFO (First-In-First-Out) 방식의 원칙에 따라 작동합니다. | 스택은 LIFO (Last-In-First-Out) 기반으로 작동합니다. |
대기열의 삽입 및 삭제는 서로 다른 끝에서 발생합니다. | 삽입 및 삭제는 스택의 맨 위라고하는 동일한 끝에서 수행됩니다. |
Enqueue는 Insertion의 이름이고 dequeue는 요소 삭제입니다. | Push는 삽입이고 Pop은 Stack의 요소 삭제입니다. |
두 개의 포인터가 있습니다. 하나는 목록의 첫 번째 요소 (앞쪽)와 마지막 요소 (뒤쪽)입니다. | 맨 위 요소를 가리키는 포인터가 하나뿐입니다. |
Q # 31) SinglyLinkedList와 DoublyLinkedList는 어떻게 다른가요?
대답:
단일 연결 목록 | 이중 연결 목록 |
---|---|
단일 연결 목록의 각 노드는 데이터와 다음 노드에 대한 포인터로 구성됩니다. | 이중 연결 목록은 데이터, 다음 노드에 대한 포인터 및 이전 노드에 대한 포인터로 구성됩니다. |
단일 연결 목록은 다음 포인터를 사용하여 순회 할 수 있습니다. | 이중 연결 목록은 이전 및 다음 포인터를 모두 사용하여 순회 할 수 있습니다. |
단일 연결 목록은 이중 연결 목록에 비해 공간을 덜 차지합니다. | 이중 연결 목록은 많은 메모리 공간을 차지합니다. |
요소 액세스는 그다지 효율적이지 않습니다. | 요소 액세스가 효율적입니다. |
Q # 32) HashMap은 HashTable과 어떻게 다른가요?
대답:
HashMap | HashTable |
---|---|
HashMap은 AbstractMap 클래스를 상속합니다. | HashTable은 Dictionary 클래스를 상속합니다. |
HashMap이 동기화되지 않았습니다. | HashTable이 동기화됩니다. |
HashMap은 여러 널값을 허용하지만 하나의 널 키만 허용합니다. | HashTable은 null 값 또는 키를 허용하지 않습니다. |
HashMap이 더 빠릅니다. | HashTable은 HashMap보다 느립니다. |
HashMap은 Iterator에 의해 순회 될 수 있습니다. | HashTable은 순회 할 수 없습니다. 반복자 또는 열거자를 사용합니다. |
Q # 33) ArrayList와 Vector의 차이점을 나열하십시오.
대답:
ArrayList | 벡터 |
---|---|
ArrayList가 동기화되지 않았습니다. | 벡터가 동기화됩니다. |
ArrayList는 레거시 클래스가 아닙니다. | 벡터는 레거시 클래스입니다. |
ArrayList는 요소가 크기를 초과하여 삽입 될 때 ArrayList의 절반으로 크기를 늘립니다. | 벡터는 요소가 크기 이상으로 삽입 될 때 크기를 두 배로 늘립니다. |
ArrayList는 스레드로부터 안전하지 않습니다. | Vector는 스레드로부터 안전합니다. |
Q # 34) FailFast는 Failsafe와 어떻게 다릅니 까?
대답:
FailFast | FailSafe |
---|---|
반복하는 동안 컬렉션을 수정할 수 없습니다. | 반복하는 동안 수정할 수 있습니다. |
순회를 위해 원래 컬렉션을 사용합니다. | 원본 컬렉션의 복사본을 사용합니다. |
추가 메모리가 필요하지 않습니다. | 추가 메모리가 필요합니다. |
ConcurrentModificationException이 발생합니다. | 예외가 발생하지 않습니다. |
결론
이러한 Java Collections 인터뷰 질문은 인터뷰 준비에 도움이됩니다. Java Collections 인터뷰를위한 준비는 깊고 광범위해야하므로 이러한 질문을 연구하고 개념을 잘 이해하십시오.
이 질문들은 당신의 지식뿐만 아니라 당신의 마음의 존재를 테스트합니다.