> Java > Java베이스 > 본문

Java의 고유 컬렉션은 무엇입니까?

풀어 주다: 2019-12-27 09:47:13
원래의
21247명이 탐색했습니다.

Java의 고유 컬렉션은 무엇입니까?

Java 컬렉션 클래스는 java.util 패키지에 저장되며 객체를 저장하는 데 사용되는 컨테이너입니다. Java의 중복되지 않는 컬렉션을 살펴보겠습니다.

Set: HashSet()의 일반적인 구현은 순서가 없고 반복할 수 없는 집합입니다.

1. Set hashSet = new HashSet(), HashSet: 요소의 순서는 반복될 수 없습니다. ; 스레드로부터 안전하지 않음 컬렉션 요소는 NULL일 수 있습니다.


②. 맨 아래 레이어는 실제로 배열이며 그 목적은 쿼리 속도를 높이는 것입니다. 일반적인 배열에서는 배열 내 요소의 인덱스 위치가 무작위이며, 요소의 값과 요소의 위치 사이에 명확한 관계가 없다는 것을 알고 있습니다. 따라서 배열에서 특정 값을 검색할 때. , 일련의 요소와 비교하여 검색 값을 변경해야 합니다. 이때 쿼리 효율성은 검색 프로세스 중 비교 횟수에 따라 달라집니다. HashSet 컬렉션의 기본 배열의 인덱스와 값에는 index=hash(값)라는 특정한 관계가 있으며, 요소나 인덱스를 빠르게 찾으려면 이 공식을 호출하기만 하면 됩니다.


3. HashSet의 경우: 두 객체가 equals() 메서드를 통해 true를 반환하는 경우 두 객체의 hashCode 값도 동일해야 합니다.


2.linkedHashSet = new LinkedHashSet();

①, 기본 알고리즘이 연결 목록 및 해시 테이블 알고리즘을 사용하므로 순서대로 반복할 수 없습니다. 연결된 목록은 요소가 추가되는 순서를 보장하고, 해시 테이블은 요소의 고유성을 보장합니다. 3. Set treeSet = new TreeSet();


* TreeSet() 매개변수 없는 생성자를 사용하여 TreeSet 객체를 생성하는 경우 그 안에 배치된 요소의 클래스는 Comparable 인터페이스를 구현해야 하므로 null 요소가 배치될 수 없습니다.

위 세 가지 Set 인터페이스의 구현 클래스 비교:


공통점:

1. 어느 것도 반복 요소를 허용하지 않습니다.

2. 해결책: Set set = 컬렉션입니다. synchronousSet(set object )


차이점:

HashSet: 요소가 추가되는 순서는 보장되지 않습니다. 하위 레이어는 해시 테이블 알고리즘을 사용하며 쿼리 효율성이 높습니다. 두 요소가 동일한지 확인하기 위해 equals() 메서드는 true를 반환하고 hashCode() 값은 동일합니다. 즉, HashSet에 저장된 요소는 HashSet의 하위 클래스인 equals() 메소드와 hashCode() 메소드

LinkedHashSet를 커버해야 합니다. 맨 아래 레이어는 해시 테이블 알고리즘과 연결 목록 알고리즘을 사용합니다. 요소를 추가하는 순서를 정할 뿐만 아니라 쿼리 효율성도 향상시킵니다. 그러나 전반적인 성능은 HashSet보다 낮습니다.

TreeSet: 요소 추가 순서는 보장되지 않지만 세트에 있는 요소는 정렬됩니다. 맨 아래 레이어는 레드-블랙 트리 알고리즘을 채택합니다(트리 구조는 범위 쿼리에 더 적합함)

맵: 키-값 쌍, 키는 반복될 수 없으며 값은

1일 수 있습니다. , 맵은 집합이 아닙니다. 두 컬렉션 간의 매핑 관계입니다.

2. 이 두 컬렉션의 각 데이터 조각은 매핑 관계를 가지며 이를 하나의 데이터 조각으로 간주할 수 있습니다. 이것이 Entry(키,값)입니다. 지도는 여러 개의 항목으로 구성된 것으로 볼 수 있습니다.


3. Map 컬렉션은 Collection 인터페이스나 Iterable 인터페이스를 구현하지 않기 때문에 Map 컬렉션에서 각 순회를 수행할 수 없습니다.

더 많은 Java 지식을 알고 싶다면 java 기본 튜토리얼

칼럼을 주목해주세요.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿