Set<E>
와 List<E>
인터페이스 의 근본적인 차이점은 무엇입니까 ?
답변
List
순서가 지정된 요소의 순서이지만 Set
정렬되지 않은 요소의 고유 목록입니다 (감사합니다, Quinn Taylor ).
정렬 된 컬렉션 (시퀀스라고도 함). 이 인터페이스의 사용자는 목록에서 각 요소가 삽입되는 위치를 정확하게 제어 할 수 있습니다. 사용자는 정수 인덱스 (목록의 위치)로 요소에 액세스하고 목록에서 요소를 검색 할 수 있습니다.
중복 요소가없는 컬렉션입니다. 보다 공식적으로, 세트에는 e1.equals (e2)와 같은 한 쌍의 요소 e1과 e2가없고 최대 하나의 null 요소가 포함됩니다. 이름에서 알 수 있듯이이 인터페이스는 수학 집합 추상화를 모델링합니다.
답변
╔═══════════════════╦══════════════════════╦═════════════════════════════╗
║ ║ List ║ Set ║
╠═══════════════════╬══════════════════════╬═════════════════════════════╣
║ Duplicates ║ YES ║ NO ║
╠═══════════════════╬══════════════════════╬═════════════════════════════╣
║ Order ║ ORDERED ║ DEPENDS ON IMPLEMENTATION ║
╠═══════════════════╬══════════════════════╬═════════════════════════════╣
║ Positional Access ║ YES ║ NO ║
╚═══════════════════╩══════════════════════╩═════════════════════════════╝
답변
(독특한 여부) 요소의 정렬 된 목록
라는 이름의 자바의 인터페이스에 적합List
색인으로 액세스 가능
사용하여 구현
- 연결 목록
- 배열 목록
고유 한 요소 목록 :
Can not
이라는 Java 인터페이스를 준수하십시오Set
.
색인으로 액세스
사용하여 구현
- 해시 세트 (순서 없음)
- LinkedHashSet (주문)
- TreeSet (자연 순서 또는 제공된 비교기로 정렬)
두 인터페이스 모두 Java라는 인터페이스 Set
를 List
준수합니다.Collection
답변
세트는 목록이 할 수있는 동안 중복 요소를 포함 할 수 없습니다. 목록 (Java)도 순서를 의미합니다.
답변
- 목록은 주문 된 항목 그룹입니다.
- 세트는 중복이 허용되지 않는 항목 (일반적으로)의 순서가없는 그룹화입니다.
개념적으로 우리는 일반적으로 가방으로 복제를 허용하고 복제를 허용하지 않는 순서가없는 그룹화를 참조합니다.
답변
명부
- 정렬 된 요소 그룹입니다.
- List는 중복 된 요소를 수집하는 데 사용됩니다.
- 새로운 메소드는 List 인터페이스 내에 정의되어 있습니다.
세트
- 정렬되지 않은 요소 그룹입니다.
- 세트는 중복없이 요소를 수집하는 데 사용됩니다.
- Set 인터페이스에는 새로운 메소드가 정의되어 있지 않으므로 Set 서브 클래스에서만 Collection 인터페이스 메소드를 사용해야합니다.
답변
명부:
List
일반적으로 중복 오브젝트를 허용합니다.
List
주문해야하므로 색인으로 액세스 할 수 있습니다.
구현 클래스에는 다음이 포함됩니다. ArrayList
,LinkedList
,Vector
세트:
Set
S는 할 수 없습니다중복 오브젝트를 허용 . 대부분의 구현은 순서가 맞지 않지만 구현에 따라 다릅니다.
구현 클래스에는
HashSet
(정렬되지 않음),
LinkedHashSet
(순서대로),
TreeSet
(자연 순서로 또는 제공된 비교기로 정렬)