>source

자바의 "배열 목록" 저에게는 모순처럼 보입니다. 배열(정적 또는 동적)은 확실히 C++이나 컴퓨터 과학과 같은 언어의 목록과 다릅니다. Java의목록그러나 하나는 다소 어리석은 것 같지 않습니다.

질문:

  1. 추상 데이터 유형은 무엇입니까?배열 목록? 벡터(동적 배열)입니까, 아니면 연결 목록입니까?
  2. 이름이 왜배열 목록선택한? 이름이 왜목록인덱스를 사용하여 요소에 액세스하고 때때로 임의 액세스인 항목에 대해 선택됩니다(참조 여기)?

주의:저는 C++ 배경에서목록링크드 리스트이고벡터벡터(자체 조정 동적 배열)입니다. 다른 언어에서는 이 용어가 다른가요?

그 근거는 List가 메소드 세트를 제공하는 인터페이스이고 Array가 인터페이스의 기본 구현이라는 것입니다. 이는 기본 작업의 점근적 실행 시간을 의미합니다. 예를 들어 get()은 O(1)이고 remove()는 O(n)입니다. Java LinkedList otoh도 목록이지만 get()은 O(n)이고 remove()는 O(1)입니다. Java 인터페이스는 고전적인 추상 데이터 유형과 거의 일치하지 않습니다. 그들은 더 부자입니다. 라이브러리 소스는 자유롭게 사용할 수 있습니다. code를 읽는 데 시간을 보내는 것은 유익하고 재미있습니다.

Gene2021-12-03 02:10:03
  • 답변 # 1
    1. 귀하의 용어로 동적 배열로 구현됩니다. (실제로는 목록의 크기를 조정해야 할 때 교체되는 정적 배열입니다.)
    2. 그것은목록배열을 기반으로 하는 인터페이스. 그러므로 그것은정렬 목록.
    3. 네, 용어가 다릅니다. 그것은 "벡터"라는 용어의 일반적인 사용이 아닙니다. "목록"은 일반 영어로 된 목록, 즉 유형의 요소 수를 나타냅니다.
  • 이전 Ansible 설치 폴더
  • 다음 javascript : npm start가 갑자기 내 프로젝트의 어떤 버전도 로드하지 않습니다. 이미 노드 모듈을 삭제하고 다시 설치해 보았습니다. 뭐가 될수 있었는지?