1. 배열이란 무엇인가요? 연결리스트란 무엇인가요?
(추천 관련 면접 질문: java 면접 질문)
배열은 사람들이 몸에 숫자를 적고 일렬로 서 있는 것과 같습니다. 숫자에 따라 빠르게 찾을 수 있습니다. 사람. 하지만 특정 위치에 사람을 삽입하거나 삭제하면 다음 사람의 수가 바뀌게 됩니다. 물론 사람은 항상 빠르게 추가되거나 삭제됩니다.
연결된 목록은 이전 요소의 참조가 다음 요소를 가리키는 저장 구조입니다. 연결 목록은 요소를 포인터로 연결합니다.
연결된 목록은 사람들이 손을 잡고 서 있는 것과 같습니다. 10번째 사람을 찾으려면 첫 번째 사람부터 하나씩 세어야 합니다. 하지만 삽입과 삭제는 빠릅니다. 삽입할 때는 두 사람의 손을 풀고 새로 추가한 사람의 손을 다시 잡아주면 됩니다. 삭제도 마찬가지입니다.
Java에서는 ArrayList와 LinkedList가 각각 배열과 연결 목록을 사용하여 내부적으로 구현됩니다.
2. 배열과 연결 목록의 차이점은 무엇인가요?
차이점: 연결 목록은 연결 저장 구조이고 배열은 순차적 저장 구조입니다.
연결된 목록은 포인터를 통해 요소를 요소에 연결하는 반면 배열은 모든 요소를 순서대로 저장합니다.
(추천 관련 튜토리얼: Java 입문 튜토리얼)
연결된 목록의 요소 삽입 및 삭제는 배열보다 간단하며 요소를 이동할 필요가 없고 길이 확장도 더 쉽지만 더 어렵습니다.
배열에서 특정 요소 찾기 요소는 비교적 간단하지만 프로그래밍 시작 시 최대 길이를 지정해야 하므로 최대 길이에 도달하면 길이를 연장하는 것은 연결리스트만큼 편리하지 않습니다.
동일: 두 구조 모두 데이터의 순차적 저장을 실현할 수 있으며 구성된 모델은 선형 구조를 갖습니다.
3. 자바 컬렉션과 배열의 특징
배열의 특징: 고정된 크기, 동일한 데이터 유형의 데이터만 저장할 수 있음
컬렉션의 특징: 동적으로 확장 가능한 크기, 다양한 유형의 데이터를 저장할 수 있음
(관련 동영상 튜토리얼 추천: java 비디오 튜토리얼)
4. LinkedList
LinkedList의 기본 구현은 이중 연결 목록으로 구현되므로 ArrayList보다 무작위 액세스 효율성이 낮습니다. 순차접근 효율이 상대적으로 높다. 각 노드에는 선행 노드(이전 노드에 대한 포인터)와 후속 노드(후속 노드에 대한 포인터)가 있습니다. 효과는 다음과 같습니다.
1 for를 사용하면 ArrayLIst 및 배열을 반복하는 데 적합합니다. 수량 LinkedList 프로그램이 중단되면 for는 배열 구조를 반복하고 아래 첨자를 통과하는 데 적합합니다.
2. LinkedList를 반복하는 데는 foreach를 사용하는 것이 적합합니다. 이중 연결 리스트 구조를 사용하여 구현하려면 foreach 루프를 사용해야 합니다.
위 내용은 고전적인 Java 인터뷰 질문 모음(6)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!