집합과 목록의 차이

Anonim

배열 목록과 링크 된 목록의 차이점

실제 차이점에 도달하기 전에 실제적으로 무엇이 있는지 알아 보겠습니다.

세트 란 무엇입니까?

수학에서 Set의 개념을 접했고 여기에서 Set은 다소 차이가 없습니다. 그렇습니다, 그것은 요소 모음이며, 대부분의 경우 유사한 요소 모음입니다. 이러한 요소를 세트에 추가하고 실제로 인쇄되는 방법을 이해하기 위해 인쇄 해보십시오.

20, 50, 10, 30

10, 20, 30, 50으로 세트에 실제로 저장됩니다. 요소는 여기에 정렬되며 삽입 순서가 아닌 곳에 저장됩니다. 이것은 Set의 기능 중 하나이며, 저장하기 전에 항상 요소를 정렬합니다. 물론 요소에 대한 삽입 순서를 유지하면서 LinkedhashSet과 같은 예외가 있습니다.

컴퓨터 용어로, 집합에는 메서드 및 상속과 같은 몇 가지 추가 속성이 포함되어 있습니다. 메서드는 함수와 같으며 요소 집합을 추가, 제거 또는 반복하는 등의 특정 작업을 수행합니다. 우리 중 대부분은 상속이라는 용어로 잘 알려져 있으며 여기서도 마찬가지입니다. 예. Set Interface에서 사용할 수 있도록 Collection에서 Method를 상속 할 수 있습니다. 다시 우리는 새로운 용어 i에 대해 이야기하고 있습니다. 이자형. 인터페이스 설정 (Set Interface), 그리고 이는 메소드를 포함한 전체 요소 세트에 불과합니다.

어떻게 구현합니까?

더 나은 이해를 위해 구문을 사용하여 세트를 표현했습니다. 아래 구문에서 HashSet 및 TreeSet과 같은 다른 유형의 Set를 식별 할 수 있습니다.

import java. util. *; public static void main (String args []) { int count [] = {34, 22, 10, 60, 30, 22} {25, 17, 76, 12}, 88, 57};

세트 세트 = 새 HashSet ();

try {

for int i = 0; i <5; i ++) {

add (count [i]);

}

시스템. 아웃. println (set);

TreeSet sortedSeteg = 새 TreeSet (설정);

시스템. 아웃. println ("여기에 정렬 된 출력이 있습니다:");

시스템. 아웃. println (sortedSeteg);

시스템. 아웃. println ("첫 번째 요소 살펴보기:"+ (Integer) sortedSet. first ());

시스템. 아웃. println ("마지막 요소를보세요:"+ (Integer) sortedSet. last ());

}

catch (Exception e) {}

}

}

위 코드의 출력은 다음과 같습니다.

[12, 17, 25, 76, 88]

첫 번째 요소를 살펴 봅니다. 12

[25, 17, 76, 12, 88]

> 마지막 요소를보세요: 88

리스트 란 무엇입니까?

List는 Set의 기능과 비슷한 Collection을 확장하지만 삽입 순서는 유지됩니다. 다음 이름을 목록에 추가하고 어떻게 추가되는지보십시오.

목록에 대한 입력:

John, Nancy, Mary, Alice.

목록에 저장되는 방법:

John, Nancy, Mary, Alice.

삽입 순서 만 주목하십시오. 'John'은 입력뿐만 아니라 출력의 첫 번째 요소이고 그 뒤에 이름이 삽입되는 순서와 동일하다는 것을 식별 할 수 있습니다. List의 주요 속성 중 하나를 고려해 볼 수도 있습니다.

구현 방법은 무엇입니까?

ArrayList 및 LinkedList와 같은 List의 메소드 중 몇 가지를 아래 구문에서 살펴 보겠습니다.

import java. util. *; public class Collection 샘플 { public static void main (String [] args) { List a1 = new ArrayList ();

a1. add ("John"); a1. add ("Nancy");

a1. add ("Mary");

a1. add ("Alice");

시스템. 아웃. println ("ArrayList 요소는");

시스템. 아웃. print (" t"+ a1);

리스트 l1 = 새로운 LinkedList ();

l1. add ("Silvia");

l1. add ("Arjun");

l1. add ("Deepika");

l1. add ("Susan");

시스템. 아웃. println ();

시스템. 아웃. println ("LinkedList 요소는");

시스템. 아웃. print (" t"+ l1); }}

위 구문의 출력은 다음과 같습니다.

ArrayList 요소는

[John, Nancy, Mary, Alice]

LinkedList 요소

위의 코드에서 ArrayList LinkedList는 게재 신청서를 유지 관리합니다.

그들은 어떻게 다른가요?

방법과 설명:

세트와리스트는 자체적 인 방법을 가지고 있으며, 여기서는 그 중 몇 가지를 살펴 보도록하겠습니다. S.

설정 - 메소드

목록 - 메소드

1.

add ()

- 컬렉션에 객체를 추가합니다. void add (int index, Object obj) -

호출리스트의 지정된 'index'에 'obj'객체를 추가하고 이전 요소를 이동하여 요소를 덮어 쓰지 않도록합니다. 2.

clear () -

컬렉션에서 객체를 제거합니다.

  • boolean addAll (int index, Collection c) -

전체 콜렉션 'c'를 호출리스트와 지정된 'index'에 추가한다. 또한 요소를 겹쳐 쓰지 않습니다. 반환 값을 검사하여 작업의 정확성을 검사 할 수도 있습니다. 변경이 성공하면 'true'를 리턴하고, 그렇지 않으면 'false'값을 리턴합니다. 3.

contains () - Set에 특정 객체가 포함되어 있는지 확인하는 것입니다. 객체가 Set에 있으면 'true'값을 반환합니다. Object get (int index) -
지정된 'index'에 요소 또는 객체를 반환합니다. 4. isEmpty () - 콜렉션이 요소가 없는지 여부를 결정합니다. 요소가 없으면 'true'값을 반환합니다. int lastIndexOf (Object obj) - 이것은
indexOf () 메서드의 역순으로 작동합니다. 지정된 Object 'obj'의 마지막 항목을 반환하고 목록에 해당 항목이 없으면 값 '1'이 반환됩니다. 따라서 Set 인터페이스의 contains () 메서드로 사용할 수도 있습니다.6. remove () - 메소드의 매개 변수로 지정하여 콜렉션에서 요소를 제거합니다.
ListIterator listIterator () - 반복기를 List의 시작 인덱스에 반환합니다. 7. size () - 콜렉션에있는 객체 또는 요소의 수를 세는 것입니다.
ListIterator listIterator (int index) - 지정된 'index'에서 시작하여 호출하는 List를 반복하는 데 도움이됩니다. 8. - Object remove (int index) - 지정된 'index'에있는 객체를 삭제하고 결과로 삭제 된 요소를 반환합니다. 또한 결과 목록 색인을 삭제하여 삭제를 반영합니다. 9. - 객체 집합 (int index, Object obj) - 객체를 지정된 'index'에있는 호출 목록에 할당합니다. 10. - List subList (int start, int end) -
메서드를 호출 한 목록의 인덱스 'start'에서 'end'인덱스까지 객체를 포함합니다. 삽입 주문 관리: 세트는 요소가 삽입되는 요소의 순서를 유지하지 않지만 목록은 요소를 유지 관리합니다. LinkedHashSet은 삽입 순서를 유지하지만 HashSet 및 TreeSet과 같은 다른 Set는 요소를 저장하기 전에 정렬하므로이 규칙에 대한 예외가 있습니다. 아래 예와 동일한 내용이 설명되어 있습니다. Set 입력: Cat, Doll, Apple.
다음과 같이 저장되었습니다: Apple, Cat, Doll. 목록 입력: Cat, Doll, Apple. 저장 장소: Cat, Doll, Apple. 복제본의 존재:
집합은 복제본을 허용하지 않지만 목록은 허용합니다. 중복 값을 목록에 추가해야하는 경우 덮어 쓰기됩니다. Set and List duplicates에 대한 샘플을보십시오. 10, 20, 20, 50. 10,20,50 리스트 입력: 10, 20, 20, 50. 20, 50.
Null 값: 하나의 Null 값만 가질 수있는 반면, List는 하나 이상의 Null 값을 가질 수 있으며 어떤 숫자로도 제한되지 않습니다. 입력 설정: null, null, Man, Dog, Plane. 저장 장소: null, Dog, Man, Plane.
목록 입력: null, null, Man, Dog, Plane. 다음과 같이 저장되었습니다: null, null, Man, Dog, Plane. Iterator & ListIterator의 사용: Iterator 메서드는 Set와 List에서 잘 작동하는 반면 ListIterator 메서드는 List에서만 작동합니다. ListIterator를 사용해,리스트를 전방으로 이동하거나 역방향으로 이동할 수 있습니다.
  • 레거시 클래스의 존재:

Set에는 레거시 클래스가 없지만 List 인터페이스에는 'vector'라는 레거시가 있습니다. 벡터는 List 인터페이스를 사용하므로 삽입 순서가 유지됩니다. 동기화 작업으로 인해 추가, 삭제 및 업데이트에서 벡터 성능이 약간 느려집니다.

구현: Set 구현의 일부는 HashSet, LinkedHashSet 및 TreeSet입니다. List의 구현에는 ArrayList와 LinkedList가 거의 없습니다.

세트 &리스트를 언제 사용합니까?

Set와 List의 사용은 순전히 삽입 순서의 유지 요건에 달려 있습니다.Set가 삽입 순서를 유지하지 않는다는 것을 알았으므로 순서가 덜 중요 할 때 Set을 사용할 수 있습니다. 비슷한 방법으로 삽입 순서를 유지해야하는 경우 목록을 사용하십시오.

표 형식의 차이점:

S. 아니오

  • 집합의 차이점

목록

1.

삽입 명령

삽입 명령을 유지합니다. 삽입 된 첫 번째 요소는 그 값과 관계없이 첫 번째 위치에 남아 있습니다.

게재 신청서를 유지 관리하지 않습니다. 2.

  • 메소드

add (), clear (), contains (), isEmpty (), remove () 및 size ()와 같은 메소드를 사용합니다.

add (), addAll (), get (), lastIndexOf (), ListIterator (), remove (), set () 및 subList ()와 같은 메소드를 사용합니다. 3.

중복

중복을 허용하지 않으며 그러한 경우에는 값을 덮어 씁니다.

중복을 허용합니다. 4.

  • Null 값

최대 Null 값 하나만 가질 수 있습니다.

  • 모든 null 값을 가질 수 있습니다. 5.

Iterator () 및 listIterator () 사용

  • iterator () 메서드 만 사용합니다.

iterator ()와 listIterator ()를 사용한다. 6.

레거시 수업의 존재

레거시 수업은 없습니다.

레거시 클래스는 벡터로 불린다.

7. 구현 Set 인터페이스 구현의 일부는 HashSet, LinkedHashSet 및 Tree Set입니다. List 인터페이스 구현 중 일부는 LinkedList 및 ArrayList입니다. 희망, 우리는 세트와리스트 사이에 가능한 모든 차이점을 포함 시켰습니다. 우리가 뭔가를 놓친 것으로 생각되면 알려주십시오.