[java] Set과 List의 차이점은 무엇입니까?

Set<E>List<E>인터페이스 의 근본적인 차이점은 무엇입니까 ?



답변

List순서가 지정된 요소의 순서이지만 Set정렬되지 않은 요소의 고유 목록입니다 (감사합니다, Quinn Taylor ).

List<E>:

정렬 된 컬렉션 (시퀀스라고도 함). 이 인터페이스의 사용자는 목록에서 각 요소가 삽입되는 위치를 정확하게 제어 할 수 있습니다. 사용자는 정수 인덱스 (목록의 위치)로 요소에 액세스하고 목록에서 요소를 검색 할 수 있습니다.

Set<E>:

중복 요소가없는 컬렉션입니다. 보다 공식적으로, 세트에는 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라는 인터페이스 SetList준수합니다.Collection


답변

세트는 목록이 할 수있는 동안 중복 요소를 포함 할 수 없습니다. 목록 (Java)도 순서를 의미합니다.


답변

  • 목록은 주문 된 항목 그룹입니다.
  • 세트는 중복이 허용되지 않는 항목 (일반적으로)의 순서가없는 그룹화입니다.

개념적으로 우리는 일반적으로 가방으로 복제를 허용하고 복제를 허용하지 않는 순서가없는 그룹화를 참조합니다.


답변

명부

  1. 정렬 된 요소 그룹입니다.
  2. List는 중복 된 요소를 수집하는 데 사용됩니다.
  3. 새로운 메소드는 List 인터페이스 내에 정의되어 있습니다.

세트

  1. 정렬되지 않은 요소 그룹입니다.
  2. 세트는 중복없이 요소를 수집하는 데 사용됩니다.
  3. Set 인터페이스에는 새로운 메소드가 정의되어 있지 않으므로 Set 서브 클래스에서만 Collection 인터페이스 메소드를 사용해야합니다.

답변

명부:

List일반적으로 중복 오브젝트를 허용합니다.
List주문해야하므로 색인으로 액세스 할 수 있습니다.

구현 클래스에는 다음이 포함됩니다. ArrayList,LinkedList ,Vector

세트:

SetS는 할 수 없습니다중복 오브젝트를 허용 . 대부분의 구현은 순서가 맞지 않지만 구현에 따라 다릅니다.

구현 클래스에는
HashSet(정렬되지 않음),
LinkedHashSet(순서대로),
TreeSet(자연 순서로 또는 제공된 비교기로 정렬)