Latest web development tutorials

자바 컬렉션 프레임 워크

오래 전에 자바 2, 자바는 특별 카테고리를 제공합니다. 예를 들어 개체 그룹을 저장하고 조작하는 데 사용 사전, 벡터, 스택 및 속성 클래스.

이러한 클래스는 매우 유용하지만, 그들은 중앙 통합 테마 부족하지만. 이 때문에, 벡터 클래스 방식을 사용하여 속성 클래스는 매우 다른 방법이 사용한다.

컬렉션 프레임 워크는 다음과 같은 목표를 충족하도록 설계되었습니다.

  • 이 프레임 워크는 고성능해야합니다. 기본 설정 (동적 배열, 연결리스트, 트리, 해시 테이블) 구현은 효율적이어야합니다.
  • 프레임 워크는 높은 수준의 상호 운용성과 유사한 방식으로, 다른 유형의 수집을 허용한다.
  • 컬렉션의 확장 및 적응은 간단합니다.

이를 위해, 전체 모음 프레임 워크는 표준 인터페이스 세트를 중심으로 설계되어있다. 뿐만 아니라 당신은 또한이 인터페이스를 통해 자신의 컬렉션을 구현할 수 LinkedList의, HashSet의, TreeSet의 등 : 당신은 같은 달성하기 위해 이러한 표준 인터페이스를 사용할 수 있습니다.

컬렉션 프레임 워크는 표현과 모음을 조작하는 데 사용하는 통합 아키텍처입니다. 모든 컬렉션 프레임 워크는 다음을 포함 :

  • 인터페이스 : 그것은 추상적 인 데이터 형식이 컬렉션을 나타냅니다이다. 인터페이스는 대표의 수집 정보의 독립적 인 조작을 할 수 있습니다. 객체 지향 언어에서, 인터페이스는 일반적으로 계층 구조를 형성한다.
  • 구현 (클래스) : 인터페이스의 컬렉션의 실현이다. 본질적으로, 이들은 재사용 데이터 구조이다.
  • 알고리즘 : 검색 및 분류 : 예를 들어, 수행 회수 방법에서의 인터페이스를 구현 유용한 계산 개체. 이러한 알고리즘은 동일한 방법 유사한 인터페이스의 다른 구현을 가질 수 있기 때문이고, 다중 상태라고한다.

수집 이외에, 프레임 워크는 여러 맵 인터페이스와 클래스를 정의한다. 지도는 키 / 값 쌍에 저장됩니다. 지도하지 컬렉션에도 불구하고, 그러나 완전히 컬렉션에 통합되어 있습니다.


컬렉션 인터페이스

컬렉션 프레임 워크는 인터페이스를 정의한다. 이 섹션에서는 각 인터페이스의 개요를 제공합니다 :

아니오. 인터페이스 설명
(1) 컬렉션 인터페이스는 객체 그룹을 사용할 수 루트 인터페이스 컬렉션 계층이다.
목록 인터페이스 요소 컬렉션에서 상속 및 목록 인스턴스는 정렬 된 컬렉션을 저장합니다.
3 설정
컬렉션에서속됨, 그것은 중복 요소가없는 컬렉션입니다.
4 SortedSet입니다
순서대로 연속적으로 설정하면 설정을 저장합니다.
(5) 지도
값을 유일한지도 키.
6 의 Map.Entry
지도에 대한 설명 요소 (키 / 값 쌍). 지도는 내부 클래스입니다.
(7) 의 SortedMap
지도에서 상 속됨 때문에 키는 오름차순으로 개최했다.
8 열거
이 콜렉션 요소의 전통이 열거 할 수있는 인터페이스와 메소드의 정의 (한 번 획득) 개체입니다. 이 전통은 인터페이스 반복자에 의해 대체되었습니다.

컬렉션

자바 표준 클래스의 세트가 컬렉션 인터페이스를 구현합니다. 그들 중 일부는 다른 사람들이 추상 클래스 반면, 인터페이스의 부분 구현을 제공, 사용할 수있는 특정 클래스입니다.

표준 컬렉션 클래스는 다음 표에 요약되어있다 :

아니오. 클래스 설명
(1) AbstractCollection의
컬렉션 인터페이스의 대부분을 달성했다.
AbstractList를
AbstractCollection의 상속과 List 인터페이스의 대부분을 달성했다.
3 아니고 AbstractSequentialList
AbstractList를에서 상 속됨, 그것은 데이터 체인의 요소가 아니라 랜덤 액세스에 대한 액세스를 제공합니다.
4 LinkedList의
아니고 AbstractSequentialList에서 상속, 그것은 연결리스트를 구현합니다.
(5) ArrayList를
상속 AbstractList를, 동적 배열을 통해.
6 AbstractSet
AbstractCollection의 상속 및 Set 인터페이스의 대부분을 달성했다.
(7) HashSet의
그는 AbstractSet를 상속하고, 해시 테이블을 사용합니다.
8 LinkedHashSet의
예측 가능한 반복 순서와 링크리스트의 해시 테이블 설정 인터페이스.
9 TreeSet의
위하여 요소의 자연 순서의 요소를 사용 AbstractSet에서 상속.
(10) AbstractMap
Map 인터페이스의 대부분을 달성했다.
(11) HashMap의
HashMap에 키 - 값 쌍 (키 - 값) 맵핑의 내용을 저장하는 해시 테이블입니다.
의 HashMap은 AbstractMap을 상속지도, Cloneable을, java.io.Serializable 인터페이스를 깨달았다.
(12) TreeMap의
그는 AbstractMap을 계승하고, 나무의 사용.
(13) 의 WeakHashMap
상속 클래스 AbstractMap는, 해시 테이블 약한 키를 사용합니다.
(14) 의 LinkedHashMap
요소의 자연 순서의 요소를 이용하여,의 HashMap로부터 상속 정렬된다.
(15) IdentityHashMap의
문서를 비교할 때 기준-평등을 사용하여 클래스 AbstractMap 상속.

다음과 같이 이전 튜토리얼에서 우리는 패키지에 정의 java.util의 클래스에 의해 논의되었다 :

아니오. 클래스 설명
(1) 벡터
벡터 클래스는 동적 배열을 구현합니다. ArrayList에와 비슷하지만 두와는 다르다.
스택
스택은 표준 LIFO 스택을 구현 벡터의 서브 클래스입니다.
3 사전
사전 클래스는 클래스 작업 및 맵과 유사한 키 / 값 쌍을 저장하는 데 사용되는 추상 클래스이다.
4 해시 테이블
해시 테이블은 원래있는 java.util의 일부는 사전 구상 구현입니다.
(5) 등록
속성. 해시 테이블에서 상속 불변의 프로퍼티 세트를 나타냅니다. 프로퍼티리스트의 각 키와 해당 값은 문자열입니다.
6 비트 세트
비트 세트 클래스는 비트 값을 저장할 배열의 특별한 유형을 만듭니다. 배열의 크기와 비트 세트은 증가해야합니다.

비트 세트 클래스는 비트 값을 저장할 배열의 특별한 유형을 만듭니다. 배열의 크기와 비트 세트은 증가해야합니다.


컬렉션 알고리즘

컬렉션 프레임 워크는 여러 가지 알고리즘 수집 및 매핑에 사용 할 수 있습니다 정의합니다. 이 알고리즘은 클래스의 정적 메서드는 컬렉션으로 정의되어 있습니다.

호환되지 않는 유형을 비교하려고 할 때, 몇 가지 방법은 ClassCastException를 슬로우 할 수 있습니다. 비 수정 세트, UnsupportedOperationException가 예외를 수정하려고 시도합니다.

EMPTY_SET EMPTY_LIST의 EMPTY_MAP : 컬렉션은 세 가지 정적 변수를 정의합니다. 이 변수는 불변입니다.

아니오. 알고리즘 설명
(1) 컬렉션 알고리즘
여기에 모든 알고리즘의 목록입니다.

어떻게 반복자를 사용하는 방법

일반적으로 요소의 컬렉션을 통과 할 것입니다. 예를 들어, 컬렉션의 각 요소가 표시됩니다.

그것을 할 수있는 가장 쉬운 방법은이 반복자 인터페이스 또는 반복자 인터페이스를 구현하는 객체이며, 반복자를 사용하는 것입니다.

반복자는, 그래서 당신은 얻을 또는 순환으로 설정하는 요소를 제거 할 수 있습니다. 반복자는 양방향 목록을 통과하고 요소를 수정할 수 있도록 Iterator를 물려 받았다.

모든 방법 및 반복자 listIterator의 인터페이스는 예에 의해 여기에 표시를 제공한다.

어떻게 비교를 사용하는 방법

TreeSet의 트리 맵과 정렬 기억 소자에 의한 주문한다. 그러나,이 정확하게 무엇 정렬 순서에 따라 정의하는 장치를 비교한다.

이 인터페이스는 세트를 정렬하는 다른 방법으로 우리를 할 수 있습니다.

아니오. 방법의 비교 설명
(1) 사용 자바 비교기
비교기 인터페이스는 예로서 여기에 명시된 모든 방법을 제공한다

개요

자바 컬렉션 프레임 워크는 사전 패키지 된 데이터 구조 및이를 조작하는 알고리즘 프로그래머를 제공합니다.

컬렉션은 다른 개체에 대한 참조를 저장할 수있는 객체입니다. 컬렉션 유형별 콜렉션 동작 인터페이스 선언을 행할 수있다.

컬렉션 프레임 워크 클래스와 인터페이스는 java.util 패키지에 있습니다.