>Java >Java베이스 >자바 컬렉션이란 무엇입니까?

자바 컬렉션이란 무엇입니까?

angryTom
angryTom원래의
2019-11-14 10:10:403469검색

자바 컬렉션이란 무엇입니까?

Java 컬렉션이란 무엇인가요?

Java API에서 사용되는 컬렉션 클래스는 모두 Collection 인터페이스를 구현합니다.

Collection

Collection< ; –List

Collection

Collection

Collection

Collection

자바 컬렉션이란 무엇입니까?

Vector

1) 기본 데이터 구조는 배열이므로 쿼리는 빠르고 추가 및 삭제는 느립니다.

2) 스레드에 안전하고 효율성이 낮습니다

배열 기반 목록은 실제로 일부를 캡슐화합니다. Array에 없는 기능은 우리가 사용하기에는 Array의 한계에 들어갈 수 없습니다. 성능면에서 Array를 능가하는 것은 불가능합니다. 따라서 가능하다면 Array를 더 많이 사용해야 합니다. 또 다른 매우 중요한 점은 Vector가 "동기화"되어 있다는 것입니다. 이는 Vector와 ArrayList의 유일한 차이점이기도 합니다.

ArrayList

1) 기본 데이터 구조는 배열이므로 검색이 빠르고 추가 및 삭제가 느립니다.

2) Thread-unsafe 및 고효율

Vector와 마찬가지로 Array 기반의 Linked List이지만 차이점은 ArrayList가 동기화되지 않는다는 것입니다. 따라서 성능면에서는 벡터보다 우수하지만, 멀티스레드 환경에서 실행할 경우에는 스레드 동기화를 직접 관리해야 합니다.

LinkedList

1) 기본 데이터 구조는 연결 목록이므로 쿼리가 느리고 추가 및 삭제가 빠릅니다.

2) 스레드가 안전하지 않고 효율적입니다.

LinkedList는 이전과 다릅니다. 두 개의 List가 Array 기반이 아니므로 Array 성능 제한에 영향을 받지 않습니다. 각 노드(노드)에는 콘텐츠의 두 가지 측면이 포함됩니다.

1. 노드 자체의 데이터(데이터)

2. 따라서 LinkedList에 액션을 추가하고 삭제할 때 Array 기반 List처럼 많은 양의 데이터를 이동할 필요가 없습니다. nextNode의 관련 정보를 변경하면 이를 달성할 수 있습니다. 이것이 LinkedList의 장점입니다.

Hashset 컬렉션:

1) 기본 데이터 구조는 해시 테이블입니다. 해시 테이블은 hascode() 및 equals() 메서드의 두 가지 메서드에 의존합니다.

2) 두 메서드의 실행 순서:

먼저 값이 동일한지 hascode()를 결정합니다

예: 계속해서 equals() 메서드를 실행하고 반환 값을 확인합니다

는 true입니다. 이는 요소가 반복되고 추가되지 않음을 의미합니다

는 false입니다. 그냥 요소를 직접 추가하세요

아니요: 그냥 세트에 직접 추가하세요

Treeset 컬렉션:

1) 기본 데이터 구조는 이진 트리입니다.

요약:

1. 키-값 쌍이 아닌 다양한 유형의 단일 개체로 구성된 테이블입니다. 예: [tom,1,c];

2. 모든 목록은 동일한 요소를 가질 수 있습니다. 예를 들어 벡터는 [tom,koo,too,koo]를 가질 수 있습니다.

3. 예: [tom,null,1]

4. 배열 기반 목록(벡터, ArrayList)은 쿼리에 적합하고 LinkedList(연결된 목록)는 추가 및 삭제 작업에 적합합니다.

HashSet: Set과 List는 모두 Collection 인터페이스를 구현하지만 구현 방법은 상당히 다릅니다. List는 기본적으로 Array를 기반으로 합니다. 그러나 Set은 HashMap을 기반으로 구현됩니다. 이것이 Set과 List의 근본적인 차이점입니다. HashSet의 저장 방법은 HashMap의 Key를 Set의 해당 저장 항목으로 사용하는 것입니다.

php 중국어 웹사이트, 수많은 무료 Java 입문 튜토리얼, 온라인 학습을 환영합니다!

위 내용은 자바 컬렉션이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.